86

Anisotropic Noise Alex Goldberg Matthias ZwickerFrédo Durand University of California, San DiegoMIT CSAIL PixelActive Inc

Embed Size (px)

Citation preview

Page 1: Anisotropic Noise Alex Goldberg Matthias ZwickerFrédo Durand University of California, San DiegoMIT CSAIL PixelActive Inc
Page 2: Anisotropic Noise Alex Goldberg Matthias ZwickerFrédo Durand University of California, San DiegoMIT CSAIL PixelActive Inc

AnisotropicNoiseAnisotropicNoise

Alex GoldbergMatthias Zwicker Frédo Durand

University of California, San Diego MIT CSAIL

PixelActive Inc.

Page 3: Anisotropic Noise Alex Goldberg Matthias ZwickerFrédo Durand University of California, San DiegoMIT CSAIL PixelActive Inc

Procedural NoiseProcedural Noise

• Pioneered by Ken Perlin more than 20 years ago

• Powerful primitive for texture synthesis

• Valuable for small details

[Perlin, ‘99] [Perlin, ‘99]

Page 4: Anisotropic Noise Alex Goldberg Matthias ZwickerFrédo Durand University of California, San DiegoMIT CSAIL PixelActive Inc

Noise PropertiesNoise Properties

• Simple, irregular appearance

2D Noise

Page 5: Anisotropic Noise Alex Goldberg Matthias ZwickerFrédo Durand University of California, San DiegoMIT CSAIL PixelActive Inc

Noise PropertiesNoise Properties

• Simple, irregular appearance

– Octaves combine for complex textures

– Use directly or as input to another function

Noise Octaves Summed (Fractal) Noise

+

+

+ + =

Page 6: Anisotropic Noise Alex Goldberg Matthias ZwickerFrédo Durand University of California, San DiegoMIT CSAIL PixelActive Inc

Noise TodayNoise Today

• Important for modern games– Increasing content demand

– Hand-created content time-consuming

• GPUs allow real-time noise

• Olano Noise (2005): Fast GPU results– 3D noise in two texture lookups

Page 7: Anisotropic Noise Alex Goldberg Matthias ZwickerFrédo Durand University of California, San DiegoMIT CSAIL PixelActive Inc

2D Noise Distortion2D Noise Distortion

• 2D noise textures still prevalent

• Unsightly parameterization artifacts

3D Noise

[Olano,’05]

2D Noise

[Olano,’05]

Stretching Artifact

Page 8: Anisotropic Noise Alex Goldberg Matthias ZwickerFrédo Durand University of California, San DiegoMIT CSAIL PixelActive Inc

Noise FilteringNoise Filtering

• 2D noise textures can use hardware anisotropic texture filtering

• 3D noise hard to filter without aliasing

Page 9: Anisotropic Noise Alex Goldberg Matthias ZwickerFrédo Durand University of California, San DiegoMIT CSAIL PixelActive Inc

3D Noise Filtering3D Noise Filtering

• Common approach: octave truncation

• Exclude octaves that would lead to aliasing

++

Foreground

Page 10: Anisotropic Noise Alex Goldberg Matthias ZwickerFrédo Durand University of California, San DiegoMIT CSAIL PixelActive Inc

3D Noise Filtering3D Noise Filtering

• Common approach: octave truncation

• Exclude octaves that would lead to aliasing

++

Foreground Near-Background

Page 11: Anisotropic Noise Alex Goldberg Matthias ZwickerFrédo Durand University of California, San DiegoMIT CSAIL PixelActive Inc

3D Noise Filtering3D Noise Filtering

• Common approach: octave truncation

• Exclude octaves that would lead to aliasing

++

Foreground Near-Background Background

Page 12: Anisotropic Noise Alex Goldberg Matthias ZwickerFrédo Durand University of California, San DiegoMIT CSAIL PixelActive Inc

Anisotropic FilteringAnisotropic Filtering

• Circular pixel projects to an elliptical footprint

Surface Space

Screen Spacex

y

Page 13: Anisotropic Noise Alex Goldberg Matthias ZwickerFrédo Durand University of California, San DiegoMIT CSAIL PixelActive Inc

Anisotropic FilteringAnisotropic Filtering

• Circular pixel projects to an elliptical footprint

Surface Frequency Space

Fourier Transform

Surface Space

Screen Spacex

y

Page 14: Anisotropic Noise Alex Goldberg Matthias ZwickerFrédo Durand University of California, San DiegoMIT CSAIL PixelActive Inc

Noise In The Frequency DomainNoise In The Frequency Domain

Spatial Domain

+ =+

Page 15: Anisotropic Noise Alex Goldberg Matthias ZwickerFrédo Durand University of California, San DiegoMIT CSAIL PixelActive Inc

Noise In The Frequency DomainNoise In The Frequency Domain

Spatial Domain

+ =+

Frequency Domain

Page 16: Anisotropic Noise Alex Goldberg Matthias ZwickerFrédo Durand University of California, San DiegoMIT CSAIL PixelActive Inc

Anisotropic Noise FilteringAnisotropic Noise Filtering

=*

Pixel Footprint Noise Spectrum Anisotropic-Filtered Noise Spectrum

Frequency domain multiplication = Anisotropic Filtering

Page 17: Anisotropic Noise Alex Goldberg Matthias ZwickerFrédo Durand University of California, San DiegoMIT CSAIL PixelActive Inc

Frequency Space Footprint

Octave Truncation Frequency AnalysisOctave Truncation Frequency Analysis

Page 18: Anisotropic Noise Alex Goldberg Matthias ZwickerFrédo Durand University of California, San DiegoMIT CSAIL PixelActive Inc

Octave Truncation Frequency AnalysisOctave Truncation Frequency Analysis

1st Octave Spectrum

Page 19: Anisotropic Noise Alex Goldberg Matthias ZwickerFrédo Durand University of California, San DiegoMIT CSAIL PixelActive Inc

1st Octave Spectrum 2nd Octave Spectrum

Octave Truncation Frequency AnalysisOctave Truncation Frequency Analysis

Page 20: Anisotropic Noise Alex Goldberg Matthias ZwickerFrédo Durand University of California, San DiegoMIT CSAIL PixelActive Inc

1st Octave Spectrum 2nd Octave Spectrum

Aliasing!

Octave Truncation Frequency AnalysisOctave Truncation Frequency Analysis

Page 21: Anisotropic Noise Alex Goldberg Matthias ZwickerFrédo Durand University of California, San DiegoMIT CSAIL PixelActive Inc

1st Octave Spectrum 2nd Octave Spectrum 3rd Octave Spectrum

Aliasing!

Octave Truncation Frequency AnalysisOctave Truncation Frequency Analysis

Page 22: Anisotropic Noise Alex Goldberg Matthias ZwickerFrédo Durand University of California, San DiegoMIT CSAIL PixelActive Inc

1st Octave Spectrum 2nd Octave Spectrum 3rd Octave Spectrum

Aliasing! Blurriness!

Octave Truncation Frequency AnalysisOctave Truncation Frequency Analysis

Page 23: Anisotropic Noise Alex Goldberg Matthias ZwickerFrédo Durand University of California, San DiegoMIT CSAIL PixelActive Inc

• Octave truncation:

• aliasing and blurriness

• isotropic filtering

Blurriness

Aliasing

Ideal Anisotropic Spectrum Truncated Spectrum

Spectrum ShowdownSpectrum Showdown

Page 24: Anisotropic Noise Alex Goldberg Matthias ZwickerFrédo Durand University of California, San DiegoMIT CSAIL PixelActive Inc

Perlin Noise SpectrumPerlin Noise Spectrum

• Perlin Noise not tightly band-limited

• Wide overlap makes octave truncation harder

Perlin Frequency Spectra

Overlaid Octaves

Page 25: Anisotropic Noise Alex Goldberg Matthias ZwickerFrédo Durand University of California, San DiegoMIT CSAIL PixelActive Inc

Perlin Noise SpectrumPerlin Noise Spectrum

• Perlin Noise not tightly band-limited

• Wide overlap makes octave truncation harder

Perlin Frequency Spectra

Overlaid Octaves

Page 26: Anisotropic Noise Alex Goldberg Matthias ZwickerFrédo Durand University of California, San DiegoMIT CSAIL PixelActive Inc

Wavelet Noise (Cook, DeRose 2005)Wavelet Noise (Cook, DeRose 2005)

• Tighter frequency extent than Perlin Noise

– But filtering still isotropic

• Aliasing / blurriness tradeoff high even for tightly band-limited functions

[Cook, DeRose,’05] [Cook, DeRose,’05]

Perlin Spectrum Wavelet Noise Spectrum

Page 27: Anisotropic Noise Alex Goldberg Matthias ZwickerFrédo Durand University of California, San DiegoMIT CSAIL PixelActive Inc

Noise TodayNoise Today

• 3D Noise: Uniform features, no anisotropic filtering

3D NoiseBlurriness

Page 28: Anisotropic Noise Alex Goldberg Matthias ZwickerFrédo Durand University of California, San DiegoMIT CSAIL PixelActive Inc

Noise TodayNoise Today

• 3D Noise: Uniform features, no anisotropic filtering

• 2D Noise: Anisotropic filtering, stretching artifacts

3D Noise 2D Noise

Stretching Artifact

Blurriness

Page 29: Anisotropic Noise Alex Goldberg Matthias ZwickerFrédo Durand University of California, San DiegoMIT CSAIL PixelActive Inc

Anisotropic NoiseAnisotropic Noise

• Band-limited, anisotropic filtering

• Uniform features on parameterized meshes

• Efficient implementation

Page 30: Anisotropic Noise Alex Goldberg Matthias ZwickerFrédo Durand University of California, San DiegoMIT CSAIL PixelActive Inc

Anisotropic Noise OutlineAnisotropic Noise Outline

• Anisotropic Noise Tiles

• Noise tile synthesis

• Parametric distortion compensation

• Anisotropic filtering

• GPU implementation

Page 31: Anisotropic Noise Alex Goldberg Matthias ZwickerFrédo Durand University of California, San DiegoMIT CSAIL PixelActive Inc

The Basic IdeaThe Basic Idea

• Partition the frequency domain into orientations

Partitioned Frequency Domain Noise Orientation Spectra

Page 32: Anisotropic Noise Alex Goldberg Matthias ZwickerFrédo Durand University of California, San DiegoMIT CSAIL PixelActive Inc

Frequency PaletteFrequency Palette

Spatial DomainTiles

FrequencyDomain

ORIENTATIONS

Page 33: Anisotropic Noise Alex Goldberg Matthias ZwickerFrédo Durand University of California, San DiegoMIT CSAIL PixelActive Inc

Frequency PaletteFrequency PaletteS

CA

LES

Spatial Domain

ORIENTATIONS

• Additional frequencies by scaling base tiles

Page 34: Anisotropic Noise Alex Goldberg Matthias ZwickerFrédo Durand University of California, San DiegoMIT CSAIL PixelActive Inc

Single Noise OctaveSingle Noise Octave

Noise Tiles Single Noise Octave

+

+

+ + =

Spatial D

omain

Frequency D

omain

Page 35: Anisotropic Noise Alex Goldberg Matthias ZwickerFrédo Durand University of California, San DiegoMIT CSAIL PixelActive Inc

Steerable NoiseSteerable Noise

• Approximate arbitrary frequency spectra

• Example: Elliptical spectrum

Target Spectrum Approximated Spectrum

Page 36: Anisotropic Noise Alex Goldberg Matthias ZwickerFrédo Durand University of California, San DiegoMIT CSAIL PixelActive Inc

Steerable NoiseSteerable Noise19

• No Fourier / Inverse Transform at runtime

• Tile frequency ranges known in advance

• Output is a linear blend of spatial noise tiles

Page 37: Anisotropic Noise Alex Goldberg Matthias ZwickerFrédo Durand University of California, San DiegoMIT CSAIL PixelActive Inc

Steering Texture

Steerable NoiseSteerable Noise

• Approximate arbitrary frequency spectra

• Example: Elliptical spectra with steering texture

Approximated Spectra

Page 38: Anisotropic Noise Alex Goldberg Matthias ZwickerFrédo Durand University of California, San DiegoMIT CSAIL PixelActive Inc

Steerable NoiseSteerable Noise

Steering Texture

Approximated Spectra Output Noise

• Approximate arbitrary frequency spectra

• Example: Elliptical spectra with steering texture

Page 39: Anisotropic Noise Alex Goldberg Matthias ZwickerFrédo Durand University of California, San DiegoMIT CSAIL PixelActive Inc

Anisotropic Noise OutlineAnisotropic Noise Outline

• Anisotropic Noise Tiles

• Noise tile synthesis

• Parametric distortion compensation

• Anisotropic filtering

• GPU implementation

Page 40: Anisotropic Noise Alex Goldberg Matthias ZwickerFrédo Durand University of California, San DiegoMIT CSAIL PixelActive Inc

Noise Synthesis StepsNoise Synthesis Steps

1. Generate frequency-domain white noise

Frequency Domain

Page 41: Anisotropic Noise Alex Goldberg Matthias ZwickerFrédo Durand University of California, San DiegoMIT CSAIL PixelActive Inc

Noise Synthesis StepsNoise Synthesis Steps

2. Multiply with oriented, band-limited filter masks

Frequency Domainwhite noise

*

*

*

*

=

=

=

=

Filter Masks Noise Tile Spectra

Page 42: Anisotropic Noise Alex Goldberg Matthias ZwickerFrédo Durand University of California, San DiegoMIT CSAIL PixelActive Inc

Noise Synthesis StepsNoise Synthesis Steps

3. Inverse Fourier transform yields spatial noise tiles

F-1 F-1 F-1 F-1

Noise Tile Spectra

Spatial Domain Noise Tiles

Page 43: Anisotropic Noise Alex Goldberg Matthias ZwickerFrédo Durand University of California, San DiegoMIT CSAIL PixelActive Inc

Extension to 3D noiseExtension to 3D noise

• Could be extended to 3D noise

• Output would be a set of volume textures

– Significant memory cost

• So let’s stick with 2D noise…

Page 44: Anisotropic Noise Alex Goldberg Matthias ZwickerFrédo Durand University of California, San DiegoMIT CSAIL PixelActive Inc

Anisotropic Noise OutlineAnisotropic Noise Outline

• Anisotropic Noise Tiles

• Noise tile synthesis

• Parametric distortion compensation

• Anisotropic filtering

• GPU implementation

Page 45: Anisotropic Noise Alex Goldberg Matthias ZwickerFrédo Durand University of California, San DiegoMIT CSAIL PixelActive Inc

Parameterization DistortionsParameterization Distortions

• 2D noise suffers from parameterization artifacts

Distorted Mesh

Mesh Parameterization

Stretching Artifacts

Page 46: Anisotropic Noise Alex Goldberg Matthias ZwickerFrédo Durand University of California, San DiegoMIT CSAIL PixelActive Inc

Parameterization DistortionsParameterization Distortions

• 2D noise suffers from parameterization artifacts

Distorted Mesh

Mesh Parameterization

Stretching Artifacts

Page 47: Anisotropic Noise Alex Goldberg Matthias ZwickerFrédo Durand University of California, San DiegoMIT CSAIL PixelActive Inc

Frequency Space AnalysisFrequency Space Analysis

u

v

Texture Space

Texture Frequency Space

Page 48: Anisotropic Noise Alex Goldberg Matthias ZwickerFrédo Durand University of California, San DiegoMIT CSAIL PixelActive Inc

Frequency Space AnalysisFrequency Space Analysis

u

v

Texture Space

t

s

Local Object Space

Texture Frequency Space

Page 49: Anisotropic Noise Alex Goldberg Matthias ZwickerFrédo Durand University of California, San DiegoMIT CSAIL PixelActive Inc

u

v

Texture Space

t

s

Local Object Space

Frequency Space AnalysisFrequency Space Analysis

Texture Frequency Space Object Frequency Space

Page 50: Anisotropic Noise Alex Goldberg Matthias ZwickerFrédo Durand University of California, San DiegoMIT CSAIL PixelActive Inc

Frequency Space AnalysisFrequency Space Analysis

t

s

Local Object Space

Object Frequency Space

t

s

Local Object Space

Page 51: Anisotropic Noise Alex Goldberg Matthias ZwickerFrédo Durand University of California, San DiegoMIT CSAIL PixelActive Inc

Frequency Space AnalysisFrequency Space Analysis

t

s

Local Object Space

Object Frequency Space Texture Frequency Space

Page 52: Anisotropic Noise Alex Goldberg Matthias ZwickerFrédo Durand University of California, San DiegoMIT CSAIL PixelActive Inc

Frequency Space AnalysisFrequency Space Analysis

t

s

Local Object Space

u

v

Texture Space

Object Frequency Space Texture Frequency Space

Page 53: Anisotropic Noise Alex Goldberg Matthias ZwickerFrédo Durand University of California, San DiegoMIT CSAIL PixelActive Inc

t

s

Local Object Space

u

v

Texture Space

Frequency Space AnalysisFrequency Space Analysis

Object Frequency Space Texture Frequency Space

Page 54: Anisotropic Noise Alex Goldberg Matthias ZwickerFrédo Durand University of California, San DiegoMIT CSAIL PixelActive Inc

Distortion Compensation GoalDistortion Compensation Goal

• Approximate target spectrum at this triangle

• Approach: use anisotropic spectrum control

Target Frequency Spectrum

Page 55: Anisotropic Noise Alex Goldberg Matthias ZwickerFrédo Durand University of California, San DiegoMIT CSAIL PixelActive Inc

Spectrum ApproximationSpectrum Approximation

...+

......

*

*

* *

* *

+ +

++

++ +

+ +

• Compute tile weights and store per-vertex

• Multiple scales required

Target Spectrum

Noise Tile Spectra

00

12 11

01 02

10

Page 56: Anisotropic Noise Alex Goldberg Matthias ZwickerFrédo Durand University of California, San DiegoMIT CSAIL PixelActive Inc

Spectrum ApproximationSpectrum Approximation

...+

......

*

*

* *

* *

+ +

++

++ +

+ +

• Compute tile weights and store per-vertex

• Multiple scales required

Target Spectrum

Noise Tile Spectra

00

12 11

01 02

10

Page 57: Anisotropic Noise Alex Goldberg Matthias ZwickerFrédo Durand University of California, San DiegoMIT CSAIL PixelActive Inc

Tile Weight ComputationTile Weight Computation

• Fast heuristic approach

• Approximate each subband as center point

• Evaluate target spectrum at each point

Target SpectrumSubband Centers

Page 58: Anisotropic Noise Alex Goldberg Matthias ZwickerFrédo Durand University of California, San DiegoMIT CSAIL PixelActive Inc

Spectral ResultsSpectral Results

Target Spectrum Heuristic Fit

• More orientations would produce a tighter fit

• Four works well in practice

Page 59: Anisotropic Noise Alex Goldberg Matthias ZwickerFrédo Durand University of California, San DiegoMIT CSAIL PixelActive Inc

Distortion Compensation ResultsDistortion Compensation Results

• No Distortion Compensation

Distorted Mesh

Mesh Parameterization

Page 60: Anisotropic Noise Alex Goldberg Matthias ZwickerFrédo Durand University of California, San DiegoMIT CSAIL PixelActive Inc

Distortion Compensation ResultsDistortion Compensation Results

• With Distortion Compensation

Distorted Mesh

Mesh Parameterization

Page 61: Anisotropic Noise Alex Goldberg Matthias ZwickerFrédo Durand University of California, San DiegoMIT CSAIL PixelActive Inc

Distortion Compensation ResultsDistortion Compensation Results

• No Distortion Compensation

Distorted Mesh

Mesh Parameterization

Page 62: Anisotropic Noise Alex Goldberg Matthias ZwickerFrédo Durand University of California, San DiegoMIT CSAIL PixelActive Inc

Distortion Compensation ResultsDistortion Compensation Results

• With Distortion Compensation

Distorted Mesh

Mesh Parameterization

Page 63: Anisotropic Noise Alex Goldberg Matthias ZwickerFrédo Durand University of California, San DiegoMIT CSAIL PixelActive Inc

Distortion Compensation ResultsDistortion Compensation Results

• No Distortion Compensation

Distorted Mesh

Mesh Parameterization

Page 64: Anisotropic Noise Alex Goldberg Matthias ZwickerFrédo Durand University of California, San DiegoMIT CSAIL PixelActive Inc

Distortion Compensation ResultsDistortion Compensation Results

• With Distortion Compensation

Distorted Mesh

Mesh Parameterization

Page 65: Anisotropic Noise Alex Goldberg Matthias ZwickerFrédo Durand University of California, San DiegoMIT CSAIL PixelActive Inc

Distortion Compensation ResultsDistortion Compensation Results

• No Distortion Compensation

Distorted Mesh

Mesh Parameterization

Page 66: Anisotropic Noise Alex Goldberg Matthias ZwickerFrédo Durand University of California, San DiegoMIT CSAIL PixelActive Inc

Distortion Compensation ResultsDistortion Compensation Results

• With Distortion Compensation

Distorted Mesh

Mesh Parameterization

Page 67: Anisotropic Noise Alex Goldberg Matthias ZwickerFrédo Durand University of California, San DiegoMIT CSAIL PixelActive Inc

Distortion Compensation AnimationDistortion Compensation Animation

Distortion Compensation (uniform appearance)

No Distortion Compensation (noticeable stretching)

Page 68: Anisotropic Noise Alex Goldberg Matthias ZwickerFrédo Durand University of California, San DiegoMIT CSAIL PixelActive Inc

Anisotropic Noise OutlineAnisotropic Noise Outline

• Anisotropic Noise Tiles

• Noise tile synthesis

• Parametric distortion compensation

• Anisotropic filtering

• GPU implementation

Page 69: Anisotropic Noise Alex Goldberg Matthias ZwickerFrédo Durand University of California, San DiegoMIT CSAIL PixelActive Inc

Anisotropic FilteringAnisotropic Filtering

• Any 2D filtering approach can be used

• 2D hardware anisotropic filtering

– Memory bandwidth-intensive

• Our approach: view-dependent tile weights

– Relies only on bilinear filtering

– Minimal computational cost

Page 70: Anisotropic Noise Alex Goldberg Matthias ZwickerFrédo Durand University of California, San DiegoMIT CSAIL PixelActive Inc

Anisotropic Filtering RecapAnisotropic Filtering Recap

• Pixel projects to elliptical footprint

• Frequency footprint shows representable frequencies

Frequency Space Footprint

Page 71: Anisotropic Noise Alex Goldberg Matthias ZwickerFrédo Durand University of California, San DiegoMIT CSAIL PixelActive Inc

Anisotropic Filtering RecapAnisotropic Filtering Recap

Frequency Space Footprint Gaussian Filter Footprint

• Pixel projects to elliptical footprint

• Frequency footprint shows representable frequencies

Page 72: Anisotropic Noise Alex Goldberg Matthias ZwickerFrédo Durand University of California, San DiegoMIT CSAIL PixelActive Inc

Anisotropic Noise FilteringAnisotropic Noise Filtering

• Evaluate at subband centers for tile weights

– As with distortion compensation

Subband Centers Gaussian Filter Footprint

Page 73: Anisotropic Noise Alex Goldberg Matthias ZwickerFrédo Durand University of California, San DiegoMIT CSAIL PixelActive Inc

Anisotropic Noise ResultsAnisotropic Noise Results

Isotropic Filter (octave truncation)

Page 74: Anisotropic Noise Alex Goldberg Matthias ZwickerFrédo Durand University of California, San DiegoMIT CSAIL PixelActive Inc

Anisotropic Noise ResultsAnisotropic Noise Results

Anisotropic Noise

Page 75: Anisotropic Noise Alex Goldberg Matthias ZwickerFrédo Durand University of California, San DiegoMIT CSAIL PixelActive Inc

Anisotropic Noise ResultsAnisotropic Noise Results

Isotropic Filter (octave truncation)

Page 76: Anisotropic Noise Alex Goldberg Matthias ZwickerFrédo Durand University of California, San DiegoMIT CSAIL PixelActive Inc

Anisotropic Noise ResultsAnisotropic Noise Results

Anisotropic Noise

Page 77: Anisotropic Noise Alex Goldberg Matthias ZwickerFrédo Durand University of California, San DiegoMIT CSAIL PixelActive Inc

Anisotropic Noise OutlineAnisotropic Noise Outline

• Anisotropic Noise Tiles

• Noise tile synthesis

• Parametric distortion compensation

• Anisotropic filtering

• GPU implementation

Page 78: Anisotropic Noise Alex Goldberg Matthias ZwickerFrédo Durand University of California, San DiegoMIT CSAIL PixelActive Inc

GPU ImplementationGPU Implementation

• Distortion weights: CPU or vertex shader

• Antialiasing weights: pixel shader or vertex shader

• Noise tiles packed into a single RGBA texture

– 256x256x4 = 256KB

Separate Tile Textures Packed RGBA Texture

Page 79: Anisotropic Noise Alex Goldberg Matthias ZwickerFrédo Durand University of California, San DiegoMIT CSAIL PixelActive Inc

• Bottleneck: texture lookups

• One lookup per scale

– 3 scales for first octave usually sufficient

• Only one more lookup for each higher octave

– Olano Noise: 6 lookups for 3 octaves

– Anisotropic Noise: 5 lookups for 3 octaves

• Matches or outperforms Olano Noise

Performance CostPerformance Cost

Page 80: Anisotropic Noise Alex Goldberg Matthias ZwickerFrédo Durand University of California, San DiegoMIT CSAIL PixelActive Inc

Octaves AnisotropicNoise FPS

1 377

2 307

3 263

PerformancePerformance

• Timings (1680 x 1050 noise samples)

• GeForce 6800

• 4 orientations, 3 scales

Page 81: Anisotropic Noise Alex Goldberg Matthias ZwickerFrédo Durand University of California, San DiegoMIT CSAIL PixelActive Inc

3D Effects With 2D Noise3D Effects With 2D Noise

Cork-like WoodPine-like Wood Marble

• Most solid functions require uniform surface noise

• Satisfied by Anisotropic Noise

Page 82: Anisotropic Noise Alex Goldberg Matthias ZwickerFrédo Durand University of California, San DiegoMIT CSAIL PixelActive Inc

Filtering Nonlinear FunctionsFiltering Nonlinear Functions• Not technically correct for nonlinear functions

• Good results in practice

Page 83: Anisotropic Noise Alex Goldberg Matthias ZwickerFrédo Durand University of California, San DiegoMIT CSAIL PixelActive Inc

Animated NoiseAnimated Noise

• Texture coordinate shifting

• Pre-pass blend between 3 noise tiles

Page 84: Anisotropic Noise Alex Goldberg Matthias ZwickerFrédo Durand University of California, San DiegoMIT CSAIL PixelActive Inc

LimitationsLimitations

• Mesh parameterization required

– But can compensate for imperfect parameterizations

• Filtering imperfect for nonlinear functions

– But often produces good results in practice

• Additional per-vertex data for pre-computed weights

– But can compute in vertex shader

Page 85: Anisotropic Noise Alex Goldberg Matthias ZwickerFrédo Durand University of California, San DiegoMIT CSAIL PixelActive Inc

ConclusionConclusion

Anisotropic noise

• Fast, band-limited noise with anisotropic filtering

• Uniform features on paramerized meshes

• Steerable spectrum for anisotropic control

Page 86: Anisotropic Noise Alex Goldberg Matthias ZwickerFrédo Durand University of California, San DiegoMIT CSAIL PixelActive Inc

AcknowledgmentsAcknowledgments