Prev | Next
A Procedural Example
One of the benefits of having a shading language is being able to generate patterns and textures from functions, such as solid fractal noise, ramps, or other useful functions (also known as procedural textures). Procedurals have several strengths over the the alternative for texturing objects (image maps). Ultimately, however, the decision on whether to use a procedural texture or an image map largely depends on circumstances. Sometimes procedural textures are the clear solution, sometimes images maps are more appropriate, and often a combination of the two is required.Strengths of procedurals:1) Procedurals can require less time to create. Image maps must be painted or photographed. Painting requires the time and talent of an artist. Photographs also require additional processing to be suitable textures. Procedural textures, on the other hand, are already to go (given a collection of pre-made fractal, ramp, and other stock procedurals). An original texture can be created quickly just by tweaking the parameters of a procedural texture.Strengths of Image Maps:
2) Procedural textures have no pixel artifacts, like images are susceptible to. Zoom in too close to a texture map and you can see the original pixels. Procedural textures always look uniform whether viewed up close or far away.
3) Procedural textures spread out to infinity, with no repetition. Images do not. In order to cover large areas textures must repeat at some point and begin tiling. Tiling can produce artifacts when the same texture is repeated over and over. An acceptable repeating texture must be created by a trained artist. Procedural textures suffer none of these issues.
4) Procedural functions are simple to animate, just by key framing a parameter. Animating textures maps is much more difficult.
5) Procedural textures require little disk space, unlike high-resolution image maps.
1) Maps are easier to control. For instance, a specular map for a character's face must be shiny in certain places, the nose and cheeks, and less shiny in other areas. It's obvious that such a map must be painted, rather than constructed from procedural textures.
2) Maps are easier to edit. For instance, if the director demands that a dent or wood knot must appear in an exact location, it is simpler to paint the detail directly . . . and an image is much easier to edit when the director decides to change the location later. It can be difficult to edit individual elements of a procedural texture without changing the entire pattern.
3) Fewer artifacts. When animated procedural textures can occasionally exhibit artifacts (popping, flickering, etc) caused by improper anti-aliasing. Image maps are already aliased. No problems there.
One of the strengths of procedural shaders is their ability to give simple geometry a realistic look and feel. Below, a flat plane has a complex animated procedural water shader attached to it. This final shader not only creates a physically accurate ray traced refraction, but it also displaces the geometry of the plane, effectively adding real geometric detail without modeling.
The water is an animated procedural shader
The water is built from layers of simple procedural textures, as can be seen in the smaller images. The water was created with an interactive editor and required no programming.
Simple layers are combined to create a complex procedural shader
Prev | Next
Pixar Animation Studios