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

Slides:



Advertisements
Similar presentations
Point-based Graphics for Estimated Surfaces
Advertisements

Frequency analysis.
Lapped textures Emil Praun Adam Finkelstein Hugues Hoppe
Geometry Clipmaps: Terrain Rendering Using Nested Regular Grids
The imaging problem object imaging optics (lenses, etc.) image
Course Evaluations 4 Random Individuals will win an ATI Radeon tm HD2900XT.
Exploration of advanced lighting and shading techniques
Computer Vision Lecture 7: The Fourier Transform
CSE 781 Anti-aliasing for Texture Mapping. Quality considerations So far we just mapped one point – results in bad aliasing (resampling problems) We really.
3-D Computational Vision CSc Image Processing II - Fourier Transform.
Object Space EWA Surface Splatting: A Hardware Accelerated Approach to High Quality Point Rendering Liu Ren Hanspeter Pfister Matthias Zwicker CMU.
Introduction to the Curvelet Transform
Image Processing Lecture 4
CSE554Extrinsic DeformationsSlide 1 CSE 554 Lecture 10: Extrinsic Deformations Fall 2014.
David Luebke1/19/99 CS 551/651: Antialiasing David Luebke
MIT EECS 6.837, Durand and Cutler Sampling, Aliasing, & Mipmaps.
Real-Time Rendering TEXTURING Lecture 02 Marina Gavrilova.
CS 551 / CS 645 Antialiasing. What is a pixel? A pixel is not… –A box –A disk –A teeny tiny little light A pixel is a point –It has no dimension –It occupies.
EE4H, M.Sc Computer Vision Dr. Mike Spann
Lapped Textures Emil Praun and Adam Finkelstien (Princeton University) Huges Hoppe (Microsoft Research) SIGGRAPH 2000 Presented by Anteneh.
HCI 530 : Seminar (HCI) Damian Schofield.
Image Enhancement To process an image so that the result is more suitable than the original image for a specific application. Spatial domain methods and.
Sampling, Aliasing, & Mipmaps
Iso-charts: Stretch-driven Mesh Parameterization using Spectral Analysis Kun Zhou, John Snyder*, Baining Guo, Heung-Yeung Shum Microsoft Research Asia.
Lapped Textures Emil Praun Adam Finkelstein Hugues Hoppe Emil Praun Adam Finkelstein Hugues Hoppe Princeton University Microsoft Research Princeton University.
CSCE 641 Computer Graphics: Image Sampling and Reconstruction Jinxiang Chai.
Lapped Textures SIGGRAPH 2000 Emil Praun Adam Finkelstein Hugues Hoppe.
CSCE 641 Computer Graphics: Image Sampling and Reconstruction Jinxiang Chai.
lecture 5, Sampling and the Nyquist Condition Sampling Outline  FT of comb function  Sampling Nyquist Condition  sinc interpolation Truncation.
Image Sampling Moire patterns
CS148: Introduction to Computer Graphics Final Review Session.
Spectral Processing of Point-sampled Geometry
Frequency Analysis and Sheared Reconstruction for Rendering Motion Blur Kevin Egan Yu-Ting Tseng Nicolas Holzschuch Frédo Durand Ravi Ramamoorthi Columbia.
Image Sampling Moire patterns -
Filtering Approaches for Real-Time Anti-Aliasing /
© Chun-Fa Chang Sampling Theorem & Antialiasing. © Chun-Fa Chang Motivations “ My ray traced images have a lot more pixels than the TV screen. Why do.
1 Methods in Image Analysis – Lecture 3 Fourier U. Pitt Bioengineering 2630 CMU Robotics Institute Spring Term, 2006 George Stetten, M.D., Ph.D.
Introduction to Image Processing Grass Sky Tree ? ? Review.
Interactive Terrain Synthesis
Antialiasing with Line Samples Thouis R. Jones, Ronald N. Perry MERL - Mitsubishi Electric Research Laboratory.
Noise and Procedural Techniques John Spitzer Simon Green NVIDIA Corporation.
Simple Image Processing Speaker : Lin Hsiu-Ting Date : 2005 / 04 / 27.
Digital Image Processing Chapter # 4 Image Enhancement in Frequency Domain Digital Image Processing Chapter # 4 Image Enhancement in Frequency Domain.
Advanced Computer Graphics Advanced Shaders CO2409 Computer Graphics Week 16.
View-Dependent Precomputed Light Transport Using Nonlinear Gaussian Function Approximations Paul Green 1 Jan Kautz 1 Wojciech Matusik 2 Frédo Durand 1.
1 Implicit Visibility and Antiradiance for Interactive Global Illumination Carsten Dachsbacher 1, Marc Stamminger 2, George Drettakis 1, Frédo Durand 3.
CHAPTER 8 Color and Texture Mapping © 2008 Cengage Learning EMEA.
Computer Vision Spring ,-685 Instructor: S. Narasimhan Wean 5403 T-R 3:00pm – 4:20pm.
Reconstruction of Solid Models from Oriented Point Sets Misha Kazhdan Johns Hopkins University.
7- 1 Chapter 7: Fourier Analysis Fourier analysis = Series + Transform ◎ Fourier Series -- A periodic (T) function f(x) can be written as the sum of sines.
Sampling Pixel is an area!! – Square, Rectangular, or Circular? How do we approximate the area? – Why bother? Color of one pixel Image Plane Areas represented.
1 Methods in Image Analysis – Lecture 3 Fourier CMU Robotics Institute U. Pitt Bioengineering 2630 Spring Term, 2004 George Stetten, M.D., Ph.D.
Sampling Theorem & Antialiasing
CSCI 440.  So far we have learned how to  build shapes  create movement  change views  add simple lights  But, our objects still look very cartoonish.
UW EXTENSION CERTIFICATE PROGRAM IN GAME DEVELOPMENT 2 ND QUARTER: ADVANCED GRAPHICS The GPU.
Computer Graphics & Image Processing Chapter # 4 Image Enhancement in Frequency Domain 2/26/20161.
1 Dr. Scott Schaefer Antialiasing. 2/70 What is aliasing?
1 Interactive Volume Isosurface Rendering Using BT Volumes John Kloetzli Marc Olano Penny Rheingans UMBC.
Image Enhancement in the Spatial Domain.
EEE4176 Applications of Digital Signal Processing
Working Group « Pre-Filtering »
Sampling Theorem & Antialiasing
Sampling Theorem told us …
ENG4BF3 Medical Image Processing
Joshua Barczak CMSC435 UMBC
CSCE 643 Computer Vision: Image Sampling and Filtering
Filtering Part 2: Image Sampling
CSE 554 Lecture 10: Extrinsic Deformations
RADEON™ 9700 Architecture and 3D Performance
Review and Importance CS 111.
Presentation transcript:

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

Procedural Noise Pioneered by Ken Perlin more than 20 years ago Powerful primitive for texture synthesis Valuable for small details [Perlin, 99]

Noise Properties Simple, irregular appearance 2D Noise

Noise Properties Simple, irregular appearance – Octaves combine for complex textures – Use directly or as input to another function Noise Octaves Summed (Fractal) Noise =

Noise 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

2D Noise Distortion 2D noise textures still prevalent Unsightly parameterization artifacts 3D Noise [Olano,05] 2D Noise [Olano,05] Stretching Artifact

Noise Filtering 2D noise textures can use hardware anisotropic texture filtering 3D noise hard to filter without aliasing

3D Noise Filtering Common approach: octave truncation Exclude octaves that would lead to aliasing + + Foreground

3D Noise Filtering Common approach: octave truncation Exclude octaves that would lead to aliasing + + ForegroundNear-Background

3D Noise Filtering Common approach: octave truncation Exclude octaves that would lead to aliasing + + ForegroundNear-Background Background

Anisotropic Filtering Circular pixel projects to an elliptical footprint Surface Space Screen Space x y

Anisotropic Filtering Circular pixel projects to an elliptical footprint Surface Frequency Space Fourier Transform Surface Space Screen Space x y

Noise In The Frequency Domain Spatial Domain + = +

Noise In The Frequency Domain Spatial Domain + = + Frequency Domain

Anisotropic Noise Filtering = * Pixel Footprint Noise Spectrum Anisotropic-Filtered Noise Spectrum Frequency domain multiplication = Anisotropic Filtering

Frequency Space Footprint Octave Truncation Frequency Analysis

1 st Octave Spectrum

2 nd Octave Spectrum Octave Truncation Frequency Analysis

1 st Octave Spectrum 2 nd Octave Spectrum Aliasing! Octave Truncation Frequency Analysis

1 st Octave Spectrum 2 nd Octave Spectrum 3 rd Octave Spectrum Aliasing! Octave Truncation Frequency Analysis

1 st Octave Spectrum 2 nd Octave Spectrum 3 rd Octave Spectrum Aliasing! Blurriness! Octave Truncation Frequency Analysis

Octave truncation: aliasing and blurriness isotropic filtering Blurriness Aliasing Ideal Anisotropic Spectrum Truncated Spectrum Spectrum Showdown

Perlin Noise Spectrum Perlin Noise not tightly band-limited Wide overlap makes octave truncation harder Perlin Frequency Spectra Overlaid Octaves

Perlin Noise Spectrum Perlin Noise not tightly band-limited Wide overlap makes octave truncation harder Perlin Frequency Spectra Overlaid Octaves

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] Perlin Spectrum Wavelet Noise Spectrum

Noise Today 3D Noise: Uniform features, no anisotropic filtering 3D Noise Blurriness

Noise Today 3D Noise: Uniform features, no anisotropic filtering 2D Noise: Anisotropic filtering, stretching artifacts 3D Noise 2D Noise Stretching Artifact Blurriness

Anisotropic Noise Band-limited, anisotropic filtering Uniform features on parameterized meshes Efficient implementation

Anisotropic Noise Outline Anisotropic Noise Tiles Noise tile synthesis Parametric distortion compensation Anisotropic filtering GPU implementation

The Basic Idea Partition the frequency domain into orientations Partitioned Frequency Domain Noise Orientation Spectra

Frequency Palette Spatial Domain Tiles Frequency Domain ORIENTATIONS

Frequency Palette SCALES Spatial Domain ORIENTATIONS Additional frequencies by scaling base tiles

Single Noise Octave Noise Tiles Single Noise Octave = Spatial Domain Frequency Domain

Steerable Noise Approximate arbitrary frequency spectra Example: Elliptical spectrum Target Spectrum Approximated Spectrum

Steerable Noise 19 No Fourier / Inverse Transform at runtime Tile frequency ranges known in advance Output is a linear blend of spatial noise tiles

Steering Texture Steerable Noise Approximate arbitrary frequency spectra Example: Elliptical spectra with steering texture Approximated Spectra

Steerable Noise Steering Texture Approximated Spectra Output Noise Approximate arbitrary frequency spectra Example: Elliptical spectra with steering texture

Anisotropic Noise Outline Anisotropic Noise Tiles Noise tile synthesis Parametric distortion compensation Anisotropic filtering GPU implementation

Noise Synthesis Steps 1. Generate frequency-domain white noise Frequency Domain

Noise Synthesis Steps 2. Multiply with oriented, band-limited filter masks Frequency Domain white noise * * * * = = = = Filter Masks Noise Tile Spectra

Noise Synthesis Steps 3. Inverse Fourier transform yields spatial noise tiles F -1 Noise Tile Spectra Spatial Domain Noise Tiles

Extension to 3D noise Could be extended to 3D noise Output would be a set of volume textures – Significant memory cost So lets stick with 2D noise…

Anisotropic Noise Outline Anisotropic Noise Tiles Noise tile synthesis Parametric distortion compensation Anisotropic filtering GPU implementation

Parameterization Distortions 2D noise suffers from parameterization artifacts Distorted Mesh Mesh Parameterization Stretching Artifacts

Parameterization Distortions 2D noise suffers from parameterization artifacts Distorted Mesh Mesh Parameterization Stretching Artifacts

Frequency Space Analysis u v Texture Space Texture Frequency Space

Frequency Space Analysis u v Texture Space t s Local Object Space Texture Frequency Space

u v Texture Space t s Local Object Space Frequency Space Analysis Texture Frequency SpaceObject Frequency Space

Frequency Space Analysis t s Local Object Space Object Frequency Space t s Local Object Space

Frequency Space Analysis t s Local Object Space Object Frequency Space Texture Frequency Space

Frequency Space Analysis t s Local Object Space u v Texture Space Object Frequency Space Texture Frequency Space

t s Local Object Space u v Texture Space Frequency Space Analysis Object Frequency Space Texture Frequency Space

Distortion Compensation Goal Approximate target spectrum at this triangle Approach: use anisotropic spectrum control Target Frequency Spectrum

Spectrum Approximation * * ** ** Compute tile weights and store per-vertex Multiple scales required Target Spectrum Noise Tile Spectra

Spectrum Approximation * * ** ** Compute tile weights and store per-vertex Multiple scales required Target Spectrum Noise Tile Spectra

Tile Weight Computation Fast heuristic approach Approximate each subband as center point Evaluate target spectrum at each point Target SpectrumSubband Centers

Spectral Results Target SpectrumHeuristic Fit More orientations would produce a tighter fit Four works well in practice

Distortion Compensation Results No Distortion Compensation Distorted Mesh Mesh Parameterization

Distortion Compensation Results With Distortion Compensation Distorted Mesh Mesh Parameterization

Distortion Compensation Results No Distortion Compensation Distorted Mesh Mesh Parameterization

Distortion Compensation Results With Distortion Compensation Distorted Mesh Mesh Parameterization

Distortion Compensation Results No Distortion Compensation Distorted Mesh Mesh Parameterization

Distortion Compensation Results With Distortion Compensation Distorted Mesh Mesh Parameterization

Distortion Compensation Results No Distortion Compensation Distorted Mesh Mesh Parameterization

Distortion Compensation Results With Distortion Compensation Distorted Mesh Mesh Parameterization

Distortion Compensation Animation Distortion Compensation (uniform appearance) No Distortion Compensation (noticeable stretching)

Anisotropic Noise Outline Anisotropic Noise Tiles Noise tile synthesis Parametric distortion compensation Anisotropic filtering GPU implementation

Anisotropic 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

Anisotropic Filtering Recap Pixel projects to elliptical footprint Frequency footprint shows representable frequencies Frequency Space Footprint

Anisotropic Filtering Recap Frequency Space FootprintGaussian Filter Footprint Pixel projects to elliptical footprint Frequency footprint shows representable frequencies

Anisotropic Noise Filtering Evaluate at subband centers for tile weights – As with distortion compensation Subband Centers Gaussian Filter Footprint

Anisotropic Noise Results Isotropic Filter (octave truncation)

Anisotropic Noise Results Anisotropic Noise

Anisotropic Noise Results Isotropic Filter (octave truncation)

Anisotropic Noise Results Anisotropic Noise

Anisotropic Noise Outline Anisotropic Noise Tiles Noise tile synthesis Parametric distortion compensation Anisotropic filtering GPU implementation

GPU 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

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 Cost

OctavesAnisotropic Noise FPS Performance Timings (1680 x 1050 noise samples) GeForce orientations, 3 scales

3D Effects With 2D Noise Cork-like WoodPine-like WoodMarble Most solid functions require uniform surface noise Satisfied by Anisotropic Noise

Filtering Nonlinear Functions Not technically correct for nonlinear functions Good results in practice

Animated Noise Texture coordinate shifting Pre-pass blend between 3 noise tiles

Limitations 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

Conclusion Anisotropic noise Fast, band-limited noise with anisotropic filtering Uniform features on paramerized meshes Steerable spectrum for anisotropic control

Acknowledgments Paul Green MIT pre-reviewers Arash Keshmirian Hugues Hoppe Microsoft New Faculty Fellowship Sloan Fellowship