Fabrice NEYRET - Maverick team, LJK, at INRIA-Montbonnot (Grenoble)
Procedural
noise like Perlin
noise allows movies and video game artists to generate on the fly
very detailed natural-looking stochastic textures, or even volumetric
density fields. Alas they are uneasy to control finely, and
pretty limited in the reachable expressive space.
In particular, many real-world textures are anisotropic (see images
above), which requires to specify varying stretch amount and
direction everywhere, and
real-world texture heterogeneity often have some structure (e.g.
holes).
Some way more costly methods like Gabor
noise give more control
of the look,
but generally in the aim of generating homogeneous fields, unlike the
examples above, and
requires way to many parameters (thus hard to design and yielding
costly storage and evaluation).
And when it come to animation ( e.g. solar flares, exploding nebula )
nothing usable is available. Our
main target application in mind relates to astrophysics uses, but the
need for reacher procedural models is generic in Computer Graphics.
The
purpose is
to enrich the limited set of procedural noise algorithms, for the
synthesis
of
large,
detailed and deep stochastic
structures as (and
not limited to) above,
either 2D or volumetric, possibly
animated, compatible with real-time applications, and reasonably easy
for a user to design. We already have a set of possible ingredients
from early experiments: the concept of unitary multiplicative noise
(cf this shadertoy),
the concept of pushing-bubbles noise (cf this shadertoy),
the idea of mixing
the best
of Perlin and Gabor models (replacing
the Perlin wavelet at nodes of the hierarchical grid by Gabor
kernels, cf
this
shadertoy),
and several previous work in the management of anisotropy by local
deformation of isotropic noise (master reports 1
(+shaders)
, 2
(+shaders)
, 3
(+shaders)
, 4
).
General culture in Computer Graphics and Math ( textures, proceduralism, Perlin noise, fractals would be a plus)
C/C++ and/or GLSL shading language or equivalent ( e.g., cf online example above ).