A filtered noise function is simply a function created by filtering impulses of random amplitude over the domain. There are a variety of ways to distribute the impulses spatially and to filter those impulses; these methods determine the character of the function and, in turn, the character of the procedural texture created from the function. Regardless of the method chosen, a filtered noise function should have certain properties [16], some of which are:
One way of distributing noise impulses is to space them uniformly along the coordinate axes, as in a lattice. In value noise, the function itself interpolates the values at the lattice points, while in gradient noise the gradient of the function interpolates the values at the lattice points [16]. Gradient noise is similar to the noise function implemented in the RenderMan shading language.
Lattice noises can exhibit axis-aligned artifacts. Lewis [37] describes sparse convolution, a way to avoid such artifacts by distributing the impulses using a stochastic process, and van Wijk [59] describes a similar technique called spot noise.
Although the noise functions described in [16] are
generally 3D, we first discuss how to generate a 2D noise function, because
it is more
straightforward to construct in a 2D framebuffer and because some simple
interesting effects can be created with it.
Next: 5.20.2 Generating Noise Functions
Up: 5.20 Procedural Texture Generation
Previous: 5.20 Procedural Texture Generation