modified noise for evaluation on graphics hardware
play

Modified Noise for Evaluation on Graphics Hardware Marc Olano - PowerPoint PPT Presentation

Introduction & Background Modifications Conclusion Modified Noise for Evaluation on Graphics Hardware Marc Olano Computer Science and Electrical Engineering University of Maryland, Baltimore County Graphics Hardware 2005 Introduction


  1. Introduction & Background Modifications Conclusion Modified Noise for Evaluation on Graphics Hardware Marc Olano Computer Science and Electrical Engineering University of Maryland, Baltimore County Graphics Hardware 2005

  2. Introduction & Background Modifications Conclusion Outline Introduction & Background Modifications Conclusion

  3. Introduction & Background Modifications Conclusion Outline Introduction & Background Noise? Perlin noise Modifications Conclusion

  4. Introduction & Background Modifications Conclusion Why Noise? • Introduced by [Perlin, 1985] • Heavily used in production animation • Technical Achievement Oscar in 1997 • “Salt,” adds spice to shaders

  5. Introduction & Background Modifications Conclusion Why Noise? • Introduced by [Perlin, 1985] • Heavily used in production animation • Technical Achievement Oscar in 1997 • “Salt,” adds spice to shaders + =

  6. Introduction & Background Modifications Conclusion Noise Characteristics • Random • No correlation between distant values • Repeatable/deterministic • Same argument always produces same value • Band-limited • Most energy in one octave (e.g. between f & 2f) 1 2 3 4 5 6 7

  7. Introduction & Background Modifications Conclusion Noise Characteristics • Random • No correlation between distant values • Repeatable/deterministic • Same argument always produces same value • Band-limited • Most energy in one octave (e.g. between f & 2f) 1 2 3 4 5 6 7

  8. Introduction & Background Modifications Conclusion Noise Characteristics • Random • No correlation between distant values • Repeatable/deterministic • Same argument always produces same value • Band-limited • Most energy in one octave (e.g. between f & 2f) 1 2 3 4 5 6 7

  9. Introduction & Background Modifications Conclusion Gradient Noise • Original Perlin noise [Perlin, 1985] • Perlin Improved noise [Perlin, 2002] • Lattice based • Value=0 at integer lattice points • Gradient defined at integer lattice • Interpolate between • 1/2 to 1 cycle each unit 1 2 3 4 5 6 7 1 2 3 4 5 6 7 Original Improved

  10. Introduction & Background Modifications Conclusion Gradient Noise • Original Perlin noise [Perlin, 1985] • Perlin Improved noise [Perlin, 2002] • Lattice based • Value=0 at integer lattice points • Gradient defined at integer lattice • Interpolate between • 1/2 to 1 cycle each unit 1 2 3 4 5 6 7 1 2 3 4 5 6 7 Original Improved

  11. Introduction & Background Modifications Conclusion Gradient Noise • Original Perlin noise [Perlin, 1985] • Perlin Improved noise [Perlin, 2002] • Lattice based • Value=0 at integer lattice points • Gradient defined at integer lattice • Interpolate between • 1/2 to 1 cycle each unit 1 2 3 4 5 6 7 1 2 3 4 5 6 7 Original Improved

  12. Introduction & Background Modifications Conclusion Value Noise • Lattice based • Value defined at integer lattice points • Interpolate between • At most 1/2 cycle each unit • Significant low-frequency content • Easy hardware implementation with lower quality 1 2 3 4 5 6 7 1 2 3 4 5 6 7 Linear Interp Cubic Interp

  13. Introduction & Background Modifications Conclusion Value Noise • Lattice based • Value defined at integer lattice points • Interpolate between • At most 1/2 cycle each unit • Significant low-frequency content • Easy hardware implementation with lower quality 1 2 3 4 5 6 7 1 2 3 4 5 6 7 Linear Interp Cubic Interp

  14. Introduction & Background Modifications Conclusion Value Noise • Lattice based • Value defined at integer lattice points • Interpolate between • At most 1/2 cycle each unit • Significant low-frequency content • Easy hardware implementation with lower quality 1 2 3 4 5 6 7 1 2 3 4 5 6 7 Linear Interp Cubic Interp

  15. Introduction & Background Modifications Conclusion Value Noise • Lattice based • Value defined at integer lattice points • Interpolate between • At most 1/2 cycle each unit • Significant low-frequency content • Easy hardware implementation with lower quality 1 2 3 4 5 6 7 1 2 3 4 5 6 7 Linear Interp Cubic Interp

  16. Introduction & Background Modifications Conclusion Hardware Noise • Value noise • PixelFlow [Lastra et al., 1995] • Perlin Noise Pixel Shaders [Hart, 2001] • Noise textures • Gradient noise • Hardware [Perlin, 2001] • Complex composition [Perlin, 2004] • Shader implementation [Green, 2005]

  17. Introduction & Background Modifications Conclusion Noise Details • Subclass of gradient noise • Original Perlin • Perlin Improved • All of our proposed modifications

  18. Introduction & Background Modifications Conclusion Find the Lattice • Lattice-based noise: must find nearest lattice points p x ,� p y ,� p z ) • Point � p = ( � • has integer lattice location p x ⌋ , ⌊ � p y ⌋ , ⌊ � p z ⌋ ) = ( X , Y , Z ) � p i = ( ⌊ � • and fractional location in cell � p f = � p − � p i = ( x , y , z )

  19. Introduction & Background Modifications Conclusion Find the Lattice • Lattice-based noise: must find nearest lattice points p x ,� p y ,� p z ) • Point � p = ( � • has integer lattice location p x ⌋ , ⌊ � p y ⌋ , ⌊ � p z ⌋ ) = ( X , Y , Z ) � p i = ( ⌊ � • and fractional location in cell � p f = � p − � p i = ( x , y , z )

  20. Introduction & Background Modifications Conclusion Find the Lattice • Lattice-based noise: must find nearest lattice points p x ,� p y ,� p z ) • Point � p = ( � • has integer lattice location p x ⌋ , ⌊ � p y ⌋ , ⌊ � p z ⌋ ) = ( X , Y , Z ) � p i = ( ⌊ � • and fractional location in cell � p f = � p − � p i = ( x , y , z ) X Y

  21. Introduction & Background Modifications Conclusion Find the Lattice • Lattice-based noise: must find nearest lattice points p x ,� p y ,� p z ) • Point � p = ( � • has integer lattice location p x ⌋ , ⌊ � p y ⌋ , ⌊ � p z ⌋ ) = ( X , Y , Z ) � p i = ( ⌊ � • and fractional location in cell � p f = � p − � p i = ( x , y , z ) x y X Y

  22. Introduction & Background Modifications Conclusion Gradient • Random vector at each lattice point is a function of � p i g ( � p i ) • A function with that gradient grad ( � p ) = g ( � p i ) • � p f = g x ( � p i ) ∗ x + g y ( � p i ) ∗ y + g z ( � p i ) ∗ z

  23. Introduction & Background Modifications Conclusion Gradient • Random vector at each lattice point is a function of � p i g ( � p i ) • A function with that gradient grad ( � p ) = g ( � p i ) • � p f = g x ( � p i ) ∗ x + g y ( � p i ) ∗ y + g z ( � p i ) ∗ z

  24. Introduction & Background Modifications Conclusion Gradient • Random vector at each lattice point is a function of � p i g ( � p i ) • A function with that gradient grad ( � p ) = g ( � p i ) • � p f = g x ( � p i ) ∗ x + g y ( � p i ) ∗ y + g z ( � p i ) ∗ z

  25. Introduction & Background Modifications Conclusion Interpolate • Interpolate nearest 2 n gradient functions • 2D noise ( � p ) is influenced by � p i + (0 , 0) ; � p i + (0 , 1) ; � p i + (1 , 0) ; � p i + (1 , 1) • Linear interpolation • lerp ( t , a , b ) = (1 − t ) a + t b • Smooth interpolation 3 t 2 − 2 t 3 � for original noise • fade ( t ) = 10 t 3 − 15 t 4 + 6 t 5 for improved noise • flerp ( t , a , b ) = lerp ( fade ( t ) , a , b )

  26. Introduction & Background Modifications Conclusion Interpolate • Interpolate nearest 2 n gradient functions • 2D noise ( � p ) is influenced by � p i + (0 , 0) ; � p i + (0 , 1) ; � p i + (1 , 0) ; � p i + (1 , 1) • Linear interpolation • lerp ( t , a , b ) = (1 − t ) a + t b • Smooth interpolation 3 t 2 − 2 t 3 � for original noise • fade ( t ) = 10 t 3 − 15 t 4 + 6 t 5 for improved noise • flerp ( t , a , b ) = lerp ( fade ( t ) , a , b )

  27. Introduction & Background Modifications Conclusion Interpolate • Interpolate nearest 2 n gradient functions • 2D noise ( � p ) is influenced by p i + (0 , 0) ; � p i + (0 , 1) ; � p i + (1 , 0) ; � p i + (1 , 1) � • Linear interpolation • lerp ( t , a , b ) = (1 − t ) a + t b • Smooth interpolation 3 t 2 − 2 t 3 � for original noise • fade ( t ) = 10 t 3 − 15 t 4 + 6 t 5 for improved noise • flerp ( t , a , b ) = lerp ( fade ( t ) , a , b )

  28. Introduction & Background Modifications Conclusion Interpolate • Interpolate nearest 2 n gradient functions • 2D noise ( � p ) is influenced by p i + (0 , 0) ; � p i + (0 , 1) ; � p i + (1 , 0) ; � p i + (1 , 1) � • Linear interpolation • lerp ( t , a , b ) = (1 − t ) a + t b • Smooth interpolation 3 t 2 − 2 t 3 � for original noise • fade ( t ) = 10 t 3 − 15 t 4 + 6 t 5 for improved noise • flerp ( t , a , b ) = lerp ( fade ( t ) , a , b )

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend