2005F




ARTST 102 Algorithmic Visualization

Michael Nicolayeff


Pearl in Noise


Research Topic
 

Perlin Noise

Description
 
Perlin noise is an algorithm used to create a controllable natural-looking randomness, and is used in nearly all CGI in one form or another. According to its inventor, Ken Perlin, “Noise is a texturing primitive that you can use to create a very wide variety of natural looking textures. Combining noise into various mathematical expressions produces procedural texture.” The result of the basic noise function can be used to produce an image that appears random, but has an approximately uniform special frequency. This also allows the image to look almost the same no matter how it is rotated.


Noise


Noise rotated

Originally created in 1983, one aspect of Perlin noise that made it useful in earlier days of CGI was that its file size is virtually naught compared to that of bitmap based textures. Computers in those days had incredibly small hard drive and memory sizes compared to what is available today, so this was a major issue, especially for large rendered areas where tiling of a texture map would be obvious without exceptionally large bitmaps.
 
Another benefit of using Perlin noise is that since it algorithmically based, it can has an infinite amount of detail  limited only by the precision it is calculated out to. Additionally, if one treats the output of a noise function as a wave, it can be added to other noise waves of varying amplitudes and frequencies to produce a cloud-like fractal image. Typically, each successive noise wave used is twice the frequency and half the amplitude of the previous wave. 

Fractal Noise
Since it is so common to double frequencies and half the amplitudes when adding noise waves, each successive noise function is referred to as an octave. Also, to make things simpler, one variable is used to determine the amplitudes and frequencies, which is referred to as persistence. The term was originally created by Benoit Mandelbrot who defined noise with high frequency as having low persistence.
 
 By applying equations to the composite waves, one can simulate a variety of natural surfaces, such as fire, marble, and wood. This effect works even better when the noise is calculated for 3 dimensions instead of two, which can be used as a texture without having to worry about UVW coordinates. Instead, the object acts as if it were carved out of the generated material.
 


Noise used to simulate natural surfaces

Additionally,  when used in combination with filters in Photoshop and similar programs, noise can be used as a starting point for bitmapped textures. For example, noise + the cross hatch filter can quickly create a scratched glass texture. Or, one could use low density nose with the smudge tool to create stubble for a character's face map.
 
Finally, noise can be used with displacement and bump mapping to simulate landscapes, and to make rendered surfaces appear rougher and thus more detailed than the original geometry. This is done by using a 2d version of the function then having a 3d modeling program use the lights and darks of the noise to tell the program what to make higher and what to make lower.


Noise used as displacement map
(lower range of grays removed before applying)


Examples/Links Perlin Noise - Hugo Elias

Making Noise - Ken Perlin


References/Links
 

Perlin Noise - Hugo Elias

Making Noise - Ken Perlin

Hardware Perlin Noise Demonstration - Paul R. Dunn