While regular
texture mapping places a predefined
image
over a
polygon, a procedural texture is a
function or
algorithm 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 normals (for use in
bump mapping),
or even
reflectance or
shinyness.
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.