Procedural Noise/FAQ

Procedural Noise Frequently (and not so frequently) Asked Questions (FAQ)

What do you mean by procedural?

The term procedural here (and in computer science) is referring to something described by an algorithm or segment of code as opposed to a data structure. For example, instead of using a picture of a marble vase, an algorithm might be used to define the model of the vase and a texture generated in a similar manner to cover it. One nice thing about this is that the vase and accompanying texture can be defined for an infinite number of points (i.e. it is continuous) as opposed to the picture or image of the vase which would only be defined over a limited number of discretized sample points.

What is procedural noise?

According to A. Lagae, noise is "the random number generator of computer graphics." It is a random and unstructured pattern, and is useful wherever there is a need for source of extensive detail that is nevertheless lacking in evident structure.

Perlin and Hoffert describe noise as "an approximation to white noise band-limited to a single octave. White noise is a uniformly random signal, that is it contains an equal distribution of power at all frequencies. A band-limited signal, however, contains power only in a particular range or band of frequencies with zero power outside of the band (i.e. zero power for the other frequencies). Thus, noise can be used as a basis to shape a particular spectrum as desired.

Can I get a more formal definition of noise?

From the paper, State of the Art in Procedural Noise Functions: A noise is a stationary and normal random process. Control of the power spectrum is proivded, either directly, or through the summation of a number of independent scaled instances of (typically brand-limited) noise.

Why all of the talk about power when referring to noise?

Signals can often be described in terms of their frequency or phase, however random signals (i.e. noise) are referred to as such because they exhibit a random phase. Labeling such signals or referring to these signals in terms of their frequency or phase would not make as much sense as referring to their statistical properties. In a nutshell, noise is completely characterized by its power spectrum.

What is procedural noise used for?

Procedural Noise has been used used for a variety of reasons in special effects to include:

What software tools are procedural noise functions available in?

Lots - practically every major 3D software package implements some form of procedural noise or other. Some examples include:

What are some advantages to procedural noise?

What is a hypertexture?

A hypertexture is an image or texture that is created mathematically. Typically, a density is created in two, three, or four dimensions within the bounds of a desired shape (e.g. a vase, square, sphere, face, etc.). To obtain the image, a ray tracing algorithm is used to integrate through the density and obtain a final color value at each point on the object just as if a photon or ray of light had traveled through it. The resulting image or object is a hypertexture.

Where can I learn more about noise in general?

Check out the Noise Review wiki page for more information.


2011-03-29 17:44