skip to main content
research-article

High-Performance By-Example Noise using a Histogram-Preserving Blending Operator

Published:24 August 2018Publication History
Skip Abstract Section

Abstract

We propose a new by-example noise algorithm that takes as input a small example of a stochastic texture and synthesizes an infinite output with the same appearance. It works on any kind of random-phase inputs as well as on many non-random-phase inputs that are stochastic and non-periodic, typically natural textures such as moss, granite, sand, bark, etc. Our algorithm achieves high-quality results comparable to state-of-the-art procedural-noise techniques but is more than 20 times faster.

Our approach is conceptually simple: we partition the output texture space on a triangle grid and associate each vertex with a random patch from the input such that the evaluation inside a triangle is done by blending 3 patches. The key to this approach is the blending operation that usually produces visual artifacts such as ghosting, softened discontinuities and reduced contrast, or introduces new colors not present in the input. We analyze these problems by showing how linear blending impacts the histogram and show that a blending operator that preserves the histogram prevents these problems.

The main requirement for a rendering application is to implement such an operator in a fragment shader without further post-processing, i.e. we need a histogram-preserving blending operator that operates only at the pixel level. Our insight for the design of this operator is that, with Gaussian inputs, histogram-preserving blending boils down to mean and variance preservation, which is simple to obtain analytically. We extend this idea to non-Gaussian inputs by "Gaussianizing" them with a histogram transformation and "de-Gaussianizing" them with the inverse transformation after the blending operation. We show how to precompute and store these histogram transformations such that our algorithm can be implemented in a fragment shader.

References

  1. Nicolas Bonneel. 2016. FastTransport. http://liris.cnrs.fr/nbonneel/FastTransport/.Google ScholarGoogle Scholar
  2. Nicolas Bonneel, Michiel van de Panne, Sylvain Paris, and Wolfgang Heidrich. 2011. Displacement Interpolation Using Lagrangian Mass Transport. ACM Trans. Graph. 30, 6, Article 158 (2011), 12 pages. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Michael F. Cohen, Jonathan Shade, Stefan Hiller, and Oliver Deussen. 2003. Wang Tiles for Image and Texture Generation. ACM Trans. Graph. 22, 3 (2003), 287--294. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Luc Devroye. 1986. Non-Uniform Random Variate Generation.Google ScholarGoogle Scholar
  5. Alexei A. Efros and William T. Freeman. 2001. Image Quilting for Texture Synthesis and Transfer (SIGGRAPH '01). 341--346. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Bruno Galerne, Ares Lagae, Sylvain Lefebvre, and George Drettakis. 2012. Gabor Noise by Example. ACM Transactions on Graphics (Proceedings of ACM SIGGRAPH 2012) 31, 4 (2012), 73:1--73:9. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. B. Galerne, A. Leclaire, and L. Moisan. 2017a. Texton Noise. Computer Graphics Forum (2017).Google ScholarGoogle Scholar
  8. Bruno Galerne, Arthur Leclaire, and Julien Rabin. 2017b. Semi-Discrete Optimal Transport in Patch Space for Enriching Gaussian Textures. In Geometric Science of Information (Lecture Notes in Computer Science), Vol. 10589.Google ScholarGoogle ScholarCross RefCross Ref
  9. G. Gilet, J-M. Dischler, and D. Ghazanfarpour. 2012. Multiple Kernels Noise for Improved Procedural Texturing. Vis. Comput. 28, 6-8 (June 2012), 679--689. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Guillaume Gilet, Basile Sauvage, Kenneth Vanhoey, Jean-Michel Dischler, and Djamchid Ghazanfarpour. 2014. Local Random-phase Noise for Procedural Texturing. ACM Trans. Graph. 33, 6, Article 195 (2014), 11 pages. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. David J. Heeger and James R. Bergen. 1995. Pyramid-based Texture Analysis/Synthesis. In Proceedings of the 22Nd Annual Conference on Computer Graphics and Interactive Techniques (SIGGRAPH '95). 229--238. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Ares Lagae and Philip Dutré. 2006. An Alternative for Wang Tiles: Colored Edges versus Colored Corners. ACM Transactions on Graphics 25, 4 (2006), 1442--1459. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Ares Lagae, Sylvain Lefebvre, Rob Cook, Tony DeRose, George Drettakis, D.S. Ebert, J.P. Lewis, Ken Perlin, and Matthias Zwicker. 2010. State of the Art in Procedural Noise Functions. In EG 2010 - State of the Art Reports.Google ScholarGoogle Scholar
  14. Ares Lagae, Sylvain Lefebvre, George Drettakis, and Philip Dutré. 2009. Procedural Noise using Sparse Gabor Convolution. ACM Transactions on Graphics (Proceedings of ACM SIGGRAPH 2009) 28, 3 (2009), 54--64. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. John-Peter Lewis. 1984. Texture Synthesis for Digital Painting. In Proceedings of the 11th Annual Conference on Computer Graphics and Interactive Techniques (SIGGRAPH '84). 245--252. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Ján Morovic and Pei-Li Sun. 2003. Accurate 3D Image Colour Histogram Transformation. Pattern Recogn. Lett. 24, 11 (July 2003), 1725--1735. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Fabrice Neyret and Marie-Paule Cani. 1999. Pattern-based Texturing Revisited. In Proceedings of the 26th Annual Conference on Computer Graphics and Interactive Techniques (SIGGRAPH '99). 235--242. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Ken Perlin. 1985. An Image Synthesizer. In Computer Graphics (SIGGRAPH '85 Proceedings), B. A. Barsky (Ed.), Vol. 19. 287--296. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Ken Perlin. 2001. Noise hardware. Real-time shading languages, SIGGRAPH 2001 Course.Google ScholarGoogle Scholar
  20. Ken Perlin. 2002. Improving Noise. In Proceedings of the 29th Annual Conference on Computer Graphics and Interactive Techniques (SIGGRAPH '02). 681--682. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Emil Praun, Adam Finkelstein, and Hugues Hoppe. 2000. Lapped Textures (SIGGRAPH '00). 465--470. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Erik Reinhard, Michael Ashikhmin, Bruce Gooch, and Peter Shirley. 2001. Color Transfer Between Images. IEEE Comput. Graph. Appl. 21, 5 (2001), 34--41. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Jarke J. van Wijk. 1991. Spot Noise Texture Synthesis for Data Visualization. In Proceedings of the 18th Annual Conference on Computer Graphics and Interactive Techniques (SIGGRAPH '91). 309--318. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Kenneth Vanhoey, Basile Sauvage, Frédéric Larue, and Jean-Michel Dischler. 2013. On-the-fly Multi-scale Infinite Texturing from Example. ACM Trans. Graph. 32, 6, Article 208 (2013), 10 pages. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Li-Yi Wei, Sylvain Lefebvre, Vivek Kwatra, and Greg Turk. 2009. State of the Art in Example-based Texture Synthesis. In Eurographics 2009, State of the Art Report, EG-STAR.Google ScholarGoogle Scholar
  26. Lance Williams. 1983. Pyramidal Parametrics. SIGGRAPH Comput. Graph. 17, 3 (1983), 1--11. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Steven P. Worley. 1996. A Cellular Texture Basis Function. In SIGGRAPH 96 Conf. Proc. 291--294. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Qizhi Yu, Fabrice Neyret, Eric Bruneton, and Nicolas Holzschuch. 2011. Lagrangian Texture Advection: Preserving Both Spectrum and Velocity Field. IEEE Transactions on Visualization and Computer Graphics 17, 11 (2011), 1612--1623. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. High-Performance By-Example Noise using a Histogram-Preserving Blending Operator

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in

    Full Access

    • Published in

      cover image Proceedings of the ACM on Computer Graphics and Interactive Techniques
      Proceedings of the ACM on Computer Graphics and Interactive Techniques  Volume 1, Issue 2
      August 2018
      223 pages
      EISSN:2577-6193
      DOI:10.1145/3273023
      Issue’s Table of Contents

      Copyright © 2018 ACM

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 24 August 2018
      Published in pacmcgit Volume 1, Issue 2

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • research-article
      • Research
      • Refereed

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader
    About Cookies On This Site

    We use cookies to ensure that we give you the best experience on our website.

    Learn more

    Got it!