Sujet de Master 2008-2009
A journey in a procedural volume
/ Voyage dans un volume procédural


Fabrice NEYRET -   équipe AERIS(ARTIS), LJK, à l'INRIA-Montbonnot


Procedural textures - or "noise function"- introduced by Perlin are universally used in image synthesis: a simple continuous pseudo random hierarchical function can imitate the aspect of many materials (wood, marble, water, clouds, rough surfaces ...) on the fly from a handful of parameters. Beyond texture of color and surface aspect (bump), they are also used to sculpt shapes, and even movement (pseudo-turbulence). In practice, even if one can use "pure" noise directly, it is often used to enrich with details an existing explicit data (which can be color, shape, movement).
After its success in special effects, its use is now spreading in real-time applications (video games, simulators ...), thanks to the programmability of the GPU. In particular, we use it to create on the fly the details of our volumes (clouds, avalanches, biological exploration), our overall objective being the high-quality real-time exploration of  very large and detailed volumetric scenes.

Alas, even if the use of this family of functions is relatively intuitive, its properties are approximate, and the aspect of generated patterns is not easily controlable (ie, finely predictable). In addition, they can be expensive: evaluated blindly in all the voxels of a volume, its cost gets prohibitive.
Some recent studies have focused on obtaining a better control of the generated texture spectrum, and on controling the pattern orientation, but overall there is very little work on the topic, and everyone still uses the function described in the 1985 founder article (see links in the text and bibliography below).

Beyond the "noise", we are interested in anything that can enrich in detail and "tune" on the fly the appearance of enriched data (voxels, color or movement): typically, a low resolution volume of voxels densities (ie, gray levels) is enriched in details, then "shaped" by a sigmoid-like function, then converted to colors through transfer functions, then lit (which requires estimating its local gradient). The result is an object of very high apparent resolution, adjustable and explorable dynamically. But many theoretical problems -having serious practical consequences- have been totally ignored until now (see below).


The aim of this work is to study the properties then to adapt functions and algorithms of procedural noise, to make them more usable and compatible with real-time exploration of very large and detailed procedural volumes, and to expand the possibilities of these noise functions. This includes the noise itself but also the whole chain of transformations leading to the final image (ie amplification, and a posteriori functions). Here are the main avenues that we intend to run. The whole exceeds the time of a Master practice, which will only explore a part of them. As shown above, directions for improvements are numerous, from evaluating more efficiently to better filtering and to extending functionalities!

Références References