State of the Art in Procedural Noise Functions

Procedural noise functions are widely used in Computer Graphics, from off-line rendering in movie production to interactive video games. The ability to add complex and intricate details at low memory and authoring cost is one of its main attractions. This state-of-the-art report is motivated by the inherent importance of noise in graphics, the widespread use of noise in industry, and the fact that many recent research developments justify the need for an up-to date survey. Our goal is to provide both a valuable entry point into the field of procedural noise functions, as well as a comprehensive view of the field to the informed reader. In this report, we cover procedural noise functions in all their aspects. We outline recent advances in research on this topic, discussing and comparing recent and well established methods. We first formally define procedural noise functions based on stochastic processes and then classify and review existing procedural noise functions. We discuss how procedural noise functions are used for modeling and how they are applied on surfaces. We then introduce analysis tools and apply them to evaluate and compare the major approaches to noise generation. We finally identify several directions for future work.

[1]  Aaron Knoll,et al.  Better Gradient Noise , 2008 .

[2]  J. van Wijk,et al.  Spot noise texture synthesis for data visualization , 1991, SIGGRAPH.

[3]  Béla Julesz,et al.  Visual Pattern Discrimination , 1962, IRE Trans. Inf. Theory.

[4]  Jim X. Chen,et al.  OpenGL Shading Language , 2009 .

[5]  Frédo Durand,et al.  Anisotropic noise , 2008, ACM Trans. Graph..

[6]  James R. Bergen,et al.  Pyramid-based texture analysis/synthesis , 1995, Proceedings., International Conference on Image Processing.

[7]  Ares Lagae,et al.  Wang Tiles in Computer Graphics , 2009, Wang Tiles in Computer Graphics.

[8]  John P. Lewis,et al.  Generalized stochastic subdivision , 1987, TOGS.

[9]  Heinz-Otto Peitgen,et al.  The science of fractal images , 2011 .

[10]  Gregory Dudek,et al.  Procedural Texture Matching and Transformation , 2004, Comput. Graph. Forum.

[11]  Ken-ichi Anjyo,et al.  A Simple Spectral Approach to Stochastic Modelling for Natural Objects , 1988, Eurographics.

[12]  Donald S. Fussell,et al.  Computer rendering of stochastic models , 1998 .

[13]  Geoffrey Y. Gardner,et al.  Simulation of natural scenes using textured quadric surfaces , 1984, SIGGRAPH.

[14]  Hugues Hoppe,et al.  Design of tangent vector fields , 2007, SIGGRAPH 2007.

[15]  Robert Ulichney,et al.  Dithering with blue noise , 1988, Proc. IEEE.

[16]  William H. Press,et al.  The Art of Scientific Computing Second Edition , 1998 .

[17]  I. Miller Probability, Random Variables, and Stochastic Processes , 1966 .

[18]  Steven Worley,et al.  A cellular texture basis function , 1996, SIGGRAPH.

[19]  A. Papoulis HIGH DENSITY SHOT NOISE AND GAUSSIANITY , 1971 .

[20]  Darwyn R. Peachey,et al.  Solid texturing of complex surfaces , 1985, SIGGRAPH.

[21]  Ulrich Neumann,et al.  Real-time procedural textures , 1992, I3D '92.

[22]  J P Lewis Methods for stochastic spectral synthesis , 1986 .

[23]  W. Press,et al.  Numerical Recipes in C++: The Art of Scientific Computing (2nd edn)1 Numerical Recipes Example Book (C++) (2nd edn)2 Numerical Recipes Multi-Language Code CD ROM with LINUX or UNIX Single-Screen License Revised Version3 , 2003 .

[24]  Richard F. Voss,et al.  Fractals in nature: from characterization to simulation , 1988 .

[25]  M. Bartlett,et al.  An Introduction to Stochastic Processes with Special Reference to Methods and Applications. , 1955 .

[26]  John P. Lewis,et al.  Texture synthesis for digital painting , 1984, SIGGRAPH.

[27]  Xuejie Qin,et al.  Estimating Parameters for Procedural Texturing by Genetic Algorithms , 2002, Graph. Model..

[28]  Oscar Nestares,et al.  Texture synthesis‐by‐analysis method based on a multiscale early‐vision model , 1996 .

[29]  Ken Perlin,et al.  Improving noise , 2002, SIGGRAPH.

[30]  Geoffrey Y. Gardner,et al.  Visual simulation of clouds , 1985, SIGGRAPH.

[31]  Ken Perlin,et al.  An image synthesizer , 1988 .

[32]  John C. Hart,et al.  Antialiased parameterized solid texturing simplified for consumer-level hardware implementation , 1999, Workshop on Graphics Hardware.

[33]  Ares Lagae,et al.  A procedural object distribution function , 2005, TOGS.

[34]  Mark Bartlett,et al.  An Introduction to Stochastic Processes, with Special Reference to Methods and Applications , 1956 .

[35]  Alyn P. Rockwood,et al.  Clamping: A method of antialiasing textured surfaces by bandwidth limiting in object space , 1982, SIGGRAPH.

[36]  William T. Freeman,et al.  Presented at: 2nd Annual IEEE International Conference on Image , 1995 .

[37]  John G. Proakis,et al.  Probability, random variables and stochastic processes , 1985, IEEE Trans. Acoust. Speech Signal Process..

[38]  Turner Whitted,et al.  Building block shaders , 1990, SIGGRAPH.

[39]  Pierre Chainais,et al.  Infinitely Divisible Cascades to Model the Statistics of Natural Images , 2007, IEEE Transactions on Pattern Analysis and Machine Intelligence.

[40]  Marc Olano,et al.  Automatic shader level of detail , 2003, HWWS '03.

[41]  J. P. Lewis,et al.  Algorithms for solid noise synthesis , 1989, SIGGRAPH.

[42]  Ares Lagae,et al.  Long-Period Hash Functions For Procedural Texturing , 2006 .

[43]  Tony DeRose,et al.  Wavelet noise , 2005, SIGGRAPH 2005.

[44]  Jean-Michel Dischler,et al.  A survey of 3D texturing , 2001, Comput. Graph..

[45]  Ares Lagae,et al.  Procedural noise using sparse Gabor convolution auxiliary material , 2009 .

[46]  Thomas Malzbender,et al.  Fourier volume rendering , 1993, TOGS.

[47]  Ares Lagae,et al.  A Comparison of Methods for Generating Poisson Disk Distributions , 2008, Comput. Graph. Forum.

[48]  Geoff Wyvill,et al.  Fast high-quality noise , 2007, GRAPHITE '07.

[49]  Robert Bridson,et al.  Curl-noise for procedural fluid flow , 2007, ACM Trans. Graph..

[50]  Paul S. Heckbert,et al.  Fundamentals of Texture Mapping and Image Warping , 1989 .

[51]  R. Bracewell The Fourier Transform and Its Applications , 1966 .

[52]  Jong-Chul Yoon,et al.  Editing noise , 2004, Comput. Animat. Virtual Worlds.

[53]  Sylvain Lefebvre,et al.  State of the Art in Example-based Texture Synthesis , 2009, Eurographics.

[54]  Erik Brunvand,et al.  Hardware-accelerated gradient noise for graphics , 2009, GLSVLSI '09.

[55]  Sylvain Lefebvre,et al.  Pattern based procedural textures , 2003, I3D '03.

[56]  Jean-Michel Dischler,et al.  A Procedural Description of Geometric Textures by Spectral and Spatial Analysis of Profiles , 1997, Comput. Graph. Forum.

[57]  Jean-Michel Dischler,et al.  Generation of 3D Texture Using Multiple 2D Models Analysis , 1996, Comput. Graph. Forum.

[58]  Eero P. Simoncelli,et al.  A Parametric Texture Model Based on Joint Statistics of Complex Wavelet Coefficients , 2000, International Journal of Computer Vision.

[59]  Ares Lagae,et al.  Procedural noise using sparse Gabor convolution , 2009, SIGGRAPH '09.

[60]  Geoff Wyvill,et al.  Filtered noise and the fourth dimension , 1999, SIGGRAPH '99.

[61]  John C. Hart Perlin noise pixel shaders , 2001, HWWS '01.

[62]  Songde Ma,et al.  Model driven synthesis of natural textures for 3-D scenes , 1986, Comput. Graph..

[63]  Jong-Chul Yoon,et al.  Stable and controllable noise , 2008, Graph. Model..

[64]  Li-Yi Wei,et al.  Parallel white noise generation on a GPU via cryptographic hash , 2008, I3D '08.

[65]  Marc Olano Modified noise for evaluation on graphics hardware , 2005, HWWS '05.

[66]  D. Mitrovic Real-Time Shading Languages , 2022 .

[67]  Ares Lagae,et al.  Isotropic stochastic procedural textures by example , 2009 .

[68]  Bruno Galerne,et al.  Random Phase Textures: Theory and Synthesis , 2011, IEEE Transactions on Image Processing.

[69]  J. Kiefer,et al.  An Introduction to Stochastic Processes. , 1956 .

[70]  Ares Lagae,et al.  Improving Gabor Noise , 2011, IEEE Transactions on Visualization and Computer Graphics.

[71]  Randi J. Rost OpenGL shading language , 2004 .

[72]  Jean-Michel Dischler,et al.  Spectral analysis for automatic 3-D texture generation , 1995, Comput. Graph..

[73]  Hans-Peter Seidel,et al.  Sampling procedural shaders using affine arithmetic , 1997, SIGGRAPH '97.

[74]  D. Moreau,et al.  Flow Noise , 1958, Nature.