Flow-noise en temps réel Aymeric Augustin Soutenance de stage d’option scientifique Ecole polytechnique - lundi 3 juillet 2006 1
Flow-noise en temps réel • Motivation : amplifier le mouvement d’un fluide simulé à basse résolution • Méthode : ajouter une texture Texte 2
Flow-noise en temps réel • Etat de l’art Texte • Animation améliorée du bruit de Perlin • Implémentation sur carte graphique 3
Flow-noise en temps réel • Etat de l’art Texte • Animation améliorée du bruit de Perlin • Implémentation sur carte graphique 4
Etat de l’art • Textures procédurales • définition • exemples Texte 5
Etat de l’art • Problématiques d’animation • stochastique temporelle • déformation continue Texte • en temps : “popping” • en espace : “cracking” 6
Etat de l’art • Exemple : le bruit de Perlin ( 1 D) • interpolation de gradients 0,5 0,25 Texte -1 -0,75 -0,5 -0,25 0 0,25 0,5 0,75 1 -0,25 -0,5 • construction par générateurs 7
Etat de l’art • Exemple : le bruit de Perlin (2D) Texte • transformation : somme fractale 8
Etat de l’art • Textures pour les fluides • écoulement, tourbillons : turbulence • Flow-noise (Perlin, Neyret, 2001 ) Texte • gradients rotatifs • pseudo-advection 9
Etat de l’art • Textures advectées (Neyret, 2003) • lier les coordonnées texture au fluide • déformation Texte • régénération et latence • trois couches de textures 10
Etat de l’art • Textures advectées (Neyret, 2003) • latence adaptative • mélange procédural des couches Texte Noise Noise Shader 1 1 Blending 1 Blending 2 Blending Blending 3 Blending 4 Noise Noise Shader Shader 2 2 Noise Noise Shader 3 3 • flow-noise 11
Flow-noise en temps réel • Etat de l’art Texte • Animation améliorée du bruit de Perlin • Implémentation sur carte graphique 12
Animation améliorée du bruit de Perlin • Toute déformation continue respectant un champ de rotations crée des enroulements Texte 13
Animation améliorée du bruit de Perlin • Notre déformation non continue ne crée pas de discontinuité spatiale grâce aux propriétés du bruit Texte 14
Animation améliorée du bruit de Perlin • Animation des gradients : prendre la valeur de rotation au bon point ! Texte Incorrect Correct 15
Animation améliorée du bruit de Perlin • Contrôle du spectre de rotation • cascade d’énergie de Kolmogorov : E(k) = C K e - 2/3 k 4/3 (k =2 π /l) Texte injection de l'énergie E(k) dissipation de l'énergie domaine inertiel flux d'énergie k i k d k 16
Animation améliorée du bruit de Perlin • Contrôle du spectre de rotation 2 ~ k j 4/3 • version discrète : W j Ω j • proportionnalité entre le poids (contraste), la vitesse de rotation et Texte l’échelle • restent des degrés de liberté : • liberté pour l’artiste • indication de la “réalité” 17
Flow-noise en temps réel • Etat de l’art Texte • Animation améliorée du bruit de Perlin • Implémentation sur carte graphique 18
Implémentation sur carte graphique • Interface Texte 19
Implémentation sur carte graphique • Schéma du “pixel shader” fp_flownoise texCoords1 Perlin noise texCoords2 Texte Perlin noise POSITION NOISE density texCoords3 Perlin noise combine 20
Implémentation sur carte graphique • Artefacts liés à la structure du bruit Texte 21
Implémentation sur carte graphique • Problèmes de précision des coordonnées texture : flottants 16 bits vs. 32 bits Texte 22
Implémentation sur carte graphique • Statistiques sur le “pixel shader” : • 20 R-regs, 14 H-regs • 771 instructions Texte • 48 COSH, 48 SINH, 74 TEX • Résultats • >25Hz, 400x400 (QuadroFX 1400) 23
Implémentation sur carte graphique • Video Texte 24
Flow-noise en temps réel • Conclusion • algorithme amélioré • complexité acceptable Texte • très peu d’artefacts • temps réel sur processeur graphique • utilisable dans un jeu vidéo 25
Flow-noise en temps réel • Perspectives • coordonnées texture et valeurs de rotation procédurales Texte • création de “heightfields” pour les nuages, avec niveaux de détail • calcul progressif de texture pour les mouvements lents 26
Flow-noise en temps réel Texte • Questions ? 27
Recommend
More recommend