Noise and Procedural Techniques - PowerPoint PPT Presentation

About This Presentation
Title:

Noise and Procedural Techniques

Description:

Noise and Procedural Techniques John Spitzer Simon Green NVIDIA Corporation – PowerPoint PPT presentation

Number of Views:103
Avg rating:3.0/5.0
Slides: 20
Provided by: Preferr436
Category:

less

Transcript and Presenter's Notes

Title: Noise and Procedural Techniques


1
Noise and Procedural Techniques
  • John Spitzer
  • Simon Green
  • NVIDIA Corporation

2
Overview
  • What is procedural texturing?
  • Advantages and disadvantages
  • When to use procedural texturing
  • What is noise?
  • Ideal noise characteristics
  • Spectral synthesis
  • Demos...

3
What is Procedural Texturing?
  • Code vs. tables
  • Classic time vs. storage space trade-off

4
Advantages of Procedural Texturing
  • Compact- code is small (compared to textures)
  • No fixed resolution- "infinite" detail, limited
    only by precision
  • Unlimited extent- can cover arbitrarily large
    areas, no repeating
  • Parameterized- can easily generate a large no.
    of variations on a theme
  • Solid texturing (avoids 2D mapping problem)

5
Disadvantages of Procedural Texturing
  • Computation time (big ouch!)
  • Hard to code and debug
  • Aliasing

6
When to use Procedural Textures
  • Dont use them just for the hell of it!
  • Procedurals are good for animating effects
    fire, water, clouds, explosions
  • ..or anywhere where a repeating texture would be
    obvious
  • Combine the best aspects of both techniques
    e.g. painted maps noise to add variation

7
Procedural Noise
  • Noise is an important part of many procedural
    textures
  • Used everywhere in production rendering
  • Procedural noise provides a controlled method of
    adding randomness to
  • Color, texture
  • Bump map / displacement maps
  • Animation
  • Terrains, anything else

8
Ideal Noise Characteristics
  • Cant just use rand()!
  • An ideal noise function has
  • repeatable pseudorandom values
  • specific range (typically -1,1 or 0,1)
  • band-limited frequency 1
  • no obvious repeating patterns
  • invariance under rotation and translation
  • Random yet smooth

9
What does Noise look like?
  • Imagine creating a big block of random numbers
    and blurring them

10
What does Noise look like?
  • Random values at integer positions
  • Varies smoothly in-between. In 1D

1
noise(x)
x
0
1
2
3
4
5
6
7
8
-1
  • This is value noise, gradient noise is zero at
    integer positions

11
Spectral Synthesis
  • Narrow-band noise by itself is not very exciting
  • Summations of multiple frequencies are!
  • Like Fourier synthesis (summing sine waves)
  • Each layer is known as an octave since the
    frequency typically doubles each time
  • Increase in frequency known as lacunarity (gap)
  • Change in amplitude/weight known as gain

12
Fractal Sum
1/4
1/2

Freq 1
Freq 2
1/8
1/16
Freq 4
Freq 8
13
Turbulence
  • Ken Perlins trick assumes noise is signed
    -1,1
  • Exactly like fBm, but take absolute value of
    noise
  • Introduces discontinuities that make the image
    more billowy

float turbulence(float3 p, int octaves, float
lacunarity, float gain) float sum 0
float amp 1 for(int i0 iltoctaves i)
sum amp abs(noise(p)) p
lacunarity amp gain return sum
14
Turbulence

15
Pixel Shader Noise
  • Implementation of Perlins original
    (Academy-award winning) algorithm
  • Gradient noise over R3, scalar output
  • Uses 2 1D textures as look-up tables
  • Compiles to around 40 instructions

16
Pixel Shader Noise using 3D Textures
  • Pre-compute 3D texture containing random values
  • Pre-filtering with tri-cubic filter helps avoid
    linear interpolation artifacts
  • 4 lookups into a single 64x64x64 3D texture
    produces reasonable looking turbulence

17
Applying Colour Tables to Noise
18
Using Noise to Perturb Patterns
colormap(sin(x turbulence(P)))
19
Questions, comments, feedback?
  • John Spitzer, jspitzer_at_nvidia.com
  • Simon Green, sgreen_at_nvidia.com
  • www.nvidia.com/developer
Write a Comment
User Comments (0)
About PowerShow.com