Perlin Noiseweb.cse.ohio-state.edu/~wang.3602/courses/cse5542... · The Oscar™ To Ken Perlin for...

24
Perlin Noise CS4300

Transcript of Perlin Noiseweb.cse.ohio-state.edu/~wang.3602/courses/cse5542... · The Oscar™ To Ken Perlin for...

  • Perlin NoiseCS4300

  • The Oscar™The OscarTo Ken Perlin for To Ken Perlin for the development of Perlin Noise, a technique used to produce natural

    i t t appearing textures on computer generated surfaces generated surfaces for motion picture visual effects.

  • The MoviesThe Movies• James Cameron Movies (Abyss,Titanic,...) ( y , , )• Animated Movies (Lion King, Moses,...) • Arnold Movies (T2, True Lies, ...)

    S W E i d I • Star Wars Episode I • Star Trek Movies • Batman Movies • Batman Movies • and lots of others

    In fact, after around 1990 or so, everyHollywood effects film has used it.

  • What is Noise?What is Noise?

    • Noise is a mapping from Rn to R - you Noise is a mapping from R to R you input an n-dimensional point with real coordinates and it returns a real valuecoordinates, and it returns a real value.

    • n=1 for animation2 h t t h k• n=2 cheap texture hacks

    • n=3 less-cheap texture hacks• n=4 time-varying solid textures

  • Noise is Smooth RandomnessNoise is Smooth Randomness

  • Making NoiseMaking Noise1. Generate random 1. Generate random

    values at grid points.p

    2. Interpolate psmoothly between these values.

  • Linear NoiseLinear Noise

  • lerplerp

    • The basic operation of linear The basic operation of linear interpolation between two values is so commonly used in computer graphics commonly used in computer graphics that it is sometimes called a lerp in the jargon of computer graphics jargon of computer graphics.

    • Lerp operations are built into the hardware of all modern computer hardware of all modern computer graphics processors.

  • lerpinglerping

    lerp(v1 v2 t) = (1 – t)v1 + tv2lerp(v1, v2, t) = (1 t)v1 + tv2

    Qt of the distance from P to Q

    (1-t)P + tQ

    P

  • 2D Linear Noise2D Linear Noise101 15 182

    253 45 3 50 5 241

    199 57 20 139 80 230199 57 20 139 80 230154 74 178

    145 68 37 228 154 219207 133 174

  • 3D Linear Noise3D Linear Noise

  • Noise is Smooth RandomnessNoise is Smooth Randomness

  • Perlin Noise SpherePerlin Noise Sphere

  • Turbulence or Sum 1/f(noise) Turbulence or Sum 1/f(noise) noise(p) + ½ noise(2p) + ¼ noise(4p) ...

  • Perlin Sum 1/f(noise) SpherePerlin Sum 1/f(noise) Sphere

  • Perlin Sum 1/f(|noise|) SpherePerlin Sum 1/f(|noise|) Sphere

  • 2D Nornalized Turbulence2D Nornalized Turbulence

    Just Noise

  • 2D Turbulence - Clipped2D Turbulence Clipped

  • MarbleMarble

    factorG = sqrt(abs(sin(x + twist*turbulence(x, y, noise))))factorG sqrt(abs(sin(x twist turbulence(x, y, noise)))) color = (0, trunc(factorG*255), 255);

  • Clouds

    r = sqrt((x-200/d)*(x-200/d) + (y-200/d)*(y-200/d)); factorB = abs(cos(r + fluff*turbulence(x, y, noise)); ( ( ( y ))color=(127 + 128*(1 - factorB), 127 + 128*(1 - factorB), 255);

  • Student ImagesStudent Images

  • Student ImagesStudent Images

  • Student ImagesStudent Images

  • Perlin’s Clouds and CoronaPerlin s Clouds and Corona