Procedural Stochastic Textures by Tiling and Blending

Thomas Deliot and Eric Heitz

GPU Zen 2 (to appear)


This chapter provides some simplifications and practical details that address the feedback we collected from users of our HPG 2018 paper.

The main feedback we got was related to the optimal-transport solver that we use to compute 3D histogram transformations. The users were concerned by the computational time required by such a solver. In this chapter, we replace the full 3D histogram transformation by three 1D histogram transformations in the eigenspace of the histogram. We show that doing this yields in most cases acceptable results orders of magnitude faster.

The second improvement fixes the problem of colour deviation that can be observed when coarser levels of detail are used, typically with MIPmapping. To solve this problem, with use a look-up table prefiltering algorithm.

Finally, we discuss how to modify the implementation such that compressed texture formats like DXT can be used.

The chapter comes with an OpenGL demo that implements these improvements.