Engineer 2016-2017 practice project:
"Interactive procedural Gabor noise on surfaces revisited"







Advisors

Fabrice NEYRET   -  Maverick team, LJK, at INRIA-Montbonnot
Sylvain LEFEBVRE - Alice team, Loria
Joelle THOLLOT – Maverick team, LJK, at INRIA-Montbonnot

Context

Various approaches exist to describe textures: simple painting, procedural noise (e.g. Perlin noise), example-based resynthesis, Fourier-based… Among them, Gabor noise [Gab1][Gab2] gathers various advantages: it can be evaluated procedurally, it reproduces Fourier properties, still it can be applied on curve surfaces, possibly in real-time, and is compatible with local modulations.

We proposed an extension [Gab3] solving some issues of all Fourier-inspired textures and opening many new possibilities. While our operations can trivially be done in Fourier space, this would limit the use to flat plain and doesn’t allow local modulation. To operate on surfaces and apply local modulations these Fourier operations must be replaced by their spacial filtering counterparts. But a naïve implementation would lead to massive evaluation of noise samples, which are costly. It is thus necessary to rely on a data structure to cache and factor the filtering operations on procedural noise (for instance, the normalizations are generally at lower frequency than the texture).

Description of the subject

The main purpose of this engineering subject is to develop a tool to allow some efficient on-the-fly filtering and normalization operations for procedural noise on surface (Gabor first, then any other), then to adapt the various filtering operators of our extension [Gab3].

A key aspect is the caching data structure, octrees being a classical possibility [Octree]. Since compatibility with the real-time applications is important, we aim at a GPU-based interactive tool with on-board data structure. Still, this tools might also be used to generate more complicated patterns at slower rate, since space-wise generation is also interesting for offline applications.
As a base, GPU-based libraries and codes used from the previous work are available.

Prerequisites

→ Tell us about the school or personal projects you already did !

References