While regular texture mapping
places a predefined image
over a polygon
, a procedural texture is a function
that defines the color at the given point in space.
It doesn't have to be a color, though. It can also be used
for surface normal
s (for use in bump mapping
or even reflectance
Procedural textures have many advantages over regular
texture mapping; the texture is freely scalable, and can be
transformed, rotated without loss of detail. Often the
texture can be made seamlessly tilable too.
In many cases there is a downside, though. It can greatly
increase the rendering time, as the functions (which are often
quite complex) must be evaluated for every pixel rendered
(or for a raytracer, several times per pixel).
A classic example of a procedural texture is the
checkerboard floor that appear in a large number
of raytracer sample images. Other examples
include synthetic wood textures, animal
skin patterns, and clouds. The
applications are endless, but as mentioned, at the
cost of increased rendering time.