Preface

...the brain of the massive (about two tons) stegosaur weighed only about 70 grams, or 2.5 ounces.... By contrast, even the brain of the sheep—which is not a particularly brilliant animal—weighs about 130 grams, greater both in absolute size and even more so relatively to body size.... So far as strength is concerned nothing could stop one of the great dinosaurs when it was on its way; but while it is all very well to be able to go where you are going, the reasons for going and what is seen and understood on the way are even more important.
Weston La Barre, The Human Animal (1954), pp.24-25. Quoted in S. I. Hayakawa, Language in Thought and Action, 1941; fifth edition, 1991.
 

The Material Definition Language (MDL) specification is the primary resource for programmers writing an MDL compiler or integrating the use of MDL materials into an application. For those goals, the lower-level details of the language (“What is the legal character set?”) are critical.

For an artist creating rendered scenes, however, only one question is important: How can MDL be used to achieve a particular look or visual effect? The language details of MDL—its syntax, the meaning of its predefined types, how these types are combined and used by a renderer—are only interesting as they serve the artist's purpose.

However, both system integrators and artists will need to understand the basic principles of MDL as an approach that differs in some fundamental ways from traditional shading languages. And though a graphical interface may assist in the creation of new materials, many artists remain interested in the implementation details of the systems they use, aware of the additional flexibility and creative control such lower-level understanding can provide.

The structure of the MDL Handbook is designed to address the interests of these various audiences. Each chapter begins with background information about principles of physics used in that chapter as well as related issues from the history of rendering in computer graphics. The components of MDL used to implement those principles are presented next. Examples of MDL that implement common real-world materials (plastic, glass, fabric) follow descriptions of MDL to demonstrate the use of MDL in a practical implementation.

Given this structure, a reader interested in an overview of the issues needed to understand MDL could read only the “Background” sections in order. On the other hand, a reader already familiar with MDL can look through the examples for implementation ideas, reading only those examples she finds interesting. For a full understanding of MDL, however, the chapters should be read in order, experimenting with the materials in the examples in each chapter using one of the rendering systems that supports MDL.