Fabrice NEYRET - Maverick team, LJK, at INRIA-Montbonnot |
The field of Computer Graphics has some Graals such as
photorealism with complex light effects and materials, construction
and rendering of very detailed scenes, real-time exploration of very
large scenes, amplification (beautification) of coarse fluid or light
simulations, seamless merging of controlled and automatic data, etc.
The realistic realtime walk-trough detailed galaxies somehow gathers
all of these. Galaxies inter-twin a « fluid »
of heterogeneous stars and fractal opaque filaments of dust clouds
which hide, semi-hide or are illuminated by star clusters or singular
stars (cf images above).
A key strategy to tackle such mass-based
data while preserving real-time and realism is the design of scalable
lazy (i.e. minimal) representations and algorithms, able to encode
directly the visual phenomenas emerging from the sub-pixel scale. An
other one is to generate details on the fly from coarse data and
statistical informations.
Our GigaVoxels plateform offers a
convenient framework for such scalable real-time exploration.
This subject addresses the first strategy mentioned above, and
aims at modeling a
shader and its parameters able to represent correctly the
macroscopic color and transparency of a volume containing a mix of
stars and dust cloud.
The issue is non-homogeneity and correlation
in the data : Volumes of uniformly distributed independent
micro-objects are well represented by a continuous density. But
galactic dust clouds are fractal, thus not uniforms, so the real
opacity of such a volume differs from the one obtained through
density model. Moreover, stars illuminates locally the dust clouds
and can be faded or occulted by dust. This easily integrates
analytically in the uniform case (cf refs) but non-homogeneity of gas
impacts the visual effect. This is also complicated by the fact that
stars location is highly correlated with dust location otherwise...
there would'nt be nebulae in the sky and illuminated gas in distant
galaxies !
Math : skills on analytical integration & approximations
C/C++, OpenGL.
Notions of parallelism (multi-threading) or GPU programming (GLSL, CUDA, etc) would be a plus, but these can be learn easily during the practice.
Beer-Lambert law (absorption of light in matter) and related (cross-section).