top of page

Implementation of
By Example Noise Synthesis

An OpenGL / PyOT implementation of the HPG' 18 paper, High-Performance By-example Noise.
 

  • A quick sketch of the paper is: input (low-res texture) -gaussianize-> gaussian_image -blending-> blended gaussian - inverse_gaussianize-> high-res texture. So ideally you can get an infinite resolution texture with similar histogram as the input.

  • The implementation is now an offline compute + real-time LUT approximate solution. It uses PyOT to gaussianize the input texture (which should be a exact solution), OpenGL (GLSL) to perform the blend. And you can either use OT (written in python script to perform the inverse transformation) or OpenGL (approximated OT) to perform the inverse transformation.

    • The inverse transformation is approximated by Inverse Histogram Equalization per channel. However, the input has to be under decorrelated color space. Otherwise it wouldn’t account for color correlations properly. Thus, a PCA-like process is used to decorrelate the color space. (This is referenced from author’s implementation. https://eheitzresearch.wordpress.com/738-2/)

​

GitHub:

https://github.com/747745124/ByExampleNoiseOpenGL

©2025 by Shaokang

Proudly created with Wix.com

  • LinkedIn
  • GitHub
bottom of page