PROPOSITION DE SUJET DE STAGE

Flownoise: textures procédurales animées de fluides


Thématiques (Polytechnique): Algorithmique, Traitement d'Image, Divers
Réelles: Synthèse d'images, Simulation

Responsable:

FabriceNEYRET   (Fabrice.Neyret@imag.fr) -  équipe ARTIS, lab LJK, à l'INRIA-Montbonnot, Grenoble, FRANCE

MOTIVATIONS:

Les effets spéciaux du cinéma et des jeux vidéos font de plus en plus appel aux fluides (eau, lave, fumée...). Cependant, leur simulation à haute résolution est extrêmement coûteuse (surtout en 3D), et laisse peu de moyens de contrôle à l'artiste. Réciproquement, pour l'habillage détaillé des surfaces les artistes recourent fréquemment aux textures, et notamment aux textures procédurales comme les bruits de Perlin (fonction pseudo-aléatoire fractale continues à spectre contrôlé).

Nous avons développé deux modèles préliminaires permettant de définir des textures procédurales animées (cf biblio ci-dessous): Les *flownoises*, qui s'appuient sur des fonctions de bases rotatives, et les *textures advectées*, qui amplifient une simulation de fluides en ajoutant à petite échelle des flownoises dont le spectre de rotation est contrôlé (dans l'esprit de la cascade de Kolmogorov).

OBJECTIF DU STAGE:

Comme le montrent ces images, le concept est prometteur. Cependant ces modèles préliminaires soulèvent des problématiques mathématiques qu'il convient de modéliser plus proprement pour fonctionner pleinement dans le cas général. Notamment:

Selon l'avancée des travaux, on pourra éventuellement s'intéresser à l'implémentation de ce type de modèle sur GPU (calcul en chaque pixel sur la carte graphique, permettant ainsi le temps réel). D'autre part, l'utilisation de textures tridimensionnelles (champs de densités) permet de simuler des nuages ultra-détaillés (difficilement accessible avec d'autres méthodes), objectif également important pour nous. L'intérêt de combiner 3D et temps-réel va sans dire...

RÉSULTAT ATTENDU:

Théorique:

- spécification d'un nouveau modèle robuste et général de flownoise, en 2D et 3D.
- spécification d'un champs procédural de rotations amplifiant un champs de vitesses, en 2D et 3D.

Pratique:

- Implémentation d'une maquette logicielle en C ou C++
- Selon le temps et les affinités, implémentation sur GPU sous OpenGL et CG, sur cartes graphiques type GeforceFX ou Radeon.

PREREQUIS:

Indispensables:

- maths: interpolation, dont rotations; Fourier
- programmation en C/C++

Utiles:

- Notions sur les fluides et la turbulence
- Notions d'OpenGL, et de shaders programmables