Title: Create Procedural Textures with Perlin Noises
1Create Procedural Textures with Perlin Noises
Wei Shenweishen_at_cse.ucsc.edu
CMPS 260
2Perlin Noise
- Noise Function A seeded random number generator
- Interpolation Function Linear Interpolation,
Cosine Interpolation, Cubic Interpolation, etc.
3Wave Properties
Frequency 1/Wavelength
4Noise Functions
5Add them together, then
6Some noise functions created in 2D
Adding all these functions together produces a
noisy pattern
7Persistence
- A single number used to specify the amplitude of
each frequency - Frequency 2i
- Amplitude Persistencei
- i is the ith noise function being added
- Octave each successive noise function
8(No Transcript)
9Random Number Generator
Random Number Generator
Example function IntNoise(32-bit integer x)
x (xltlt13) x return
(1.0-((x(xx15731789221)1376312589)7fffffff)/
1073741824.0) end IntNoise function
10Interpolations
function Linear_Interpolate(a, b, x) return
a(1-x) bx end of function
11function Cosine_Interpolate(a, b, x) ft x
3.1415927 f (1 - cos(ft)) .5
return a(1-f) bf end of function
12function Cubic_Interpolate(v0, v1, v2, v3,x)
P (v3 - v2) - (v0 - v1) Q (v0 - v1) - P
R v2 - v0 S v1 return Px3
Qx2 Rx S end of function
13Smoothed Noise
14Applications of Perlin Noise
- 1-Dimensional controlling virtual beings,
drawing sketched lines.
15- 2-Dimensional landscapes, clouds, generating
textures. - 3-Dimensional 3D clouds, animated clouds, solid
textures. - 4-Dimensional animated 3D textures and clouds.
163 Dimensional Perlin Noise, 4 Octaves,
Persistence 0.25 and 0.5
Low persistence
Mix two Perlin Functions
Bumps - high frequency noise stretched in one
dimension
17References
- Perlin Noise http//developer.intel.com/drg/mmx/a
ppnotes/proctex.htm - Procedure Textures http//developer.intel.com/drg
/mmx/appnotes/proctex.htm - Ken Perlins Homepage http//mrl.nyu.edu/perlin/