• Aucun résultat trouvé

Une application : ´eclairement r ´ealiste dans un volume d’eau anim ´e

6.1.1 Animation de surface d’eau

Rendre une surface d’eau en mouvement suppose de disposer d’une technique d’animation réaliste. C’est un domaine de recherche à part entière, indépendant du problème du rendu. Nous passons ici simplement en revue les techniques existantes utilisables dans un contexte interactif comme celui que nous visons, et dont le résultat peut être facilement représenté sous la forme d’un champ de hauteur.

On sait depuis plusieurs siècles que le mouvement d’un fluide peut être ex-pliqué par les équations de Navier-Stokes. Plus récemment, en calcul scientifique puis en informatique graphique, ces équations ont été utilisées à différents niveaux de précision en fonction des applications visées.

L’utilisation de représentations volumiques ou à base de particules permettent des simulations physiquement très réalistes, reproduisant des mouvements com-plexes comme les éclaboussures ou des vagues déferlantes, mais les temps de cal-culs impliqués sont généralement très longs [FF01,EMF02].

Dans le contexte de la modélisation de surfaces d’océans, ces équations débouchent sur le modèle de houle de Gerstner et Biesel, qui décompose les vagues à la surface de l’océan en une somme de trains d’onde à profils trochoïdaux. Des résultats réalistes ont été obtenus [FR86,HNC02] en combinant ce modèle avec d’autres modèles empiriques fournissant des expressions pour les spectres d’ampli-tude, de fréquence et de direction des vagues [PM64,HDE80], et des propriétés de diffraction des vagues proches des côtes [Pea86, TB87, Tes99, GM02]. La représen-tation de la surface d’eau utilisée par ces méthodes peut généralement s’exprimer sous la forme d’un champ de hauteur.

Dans le cas de surfaces d’eau bornées, le champ de hauteur peut être exprimé comme la solution de simples équations aux dérivées partielles [KM90], qui

peu-Nous voyons donc qu’il existe une grande variété de méthodes, qui produisent généralement un résultat sous forme de champ de hauteur. Notamment la méthode proposée par Gomez [Gom00] peut s’implémenter très simplement et efficacement pour le GPU et permet de réagir en temps-réel à des impulsions appliquées de manière interactive à la surface de l’eau. C’est cette technique que nous utilisons dans notre implémentation et notamment pour les images de résultats montrées dans ce chapitre.

6.2 Travaux pr ´ec ´edents

Rendre une volume d’eau de manière réaliste demande de bien prendre en compte les divers phénomènes d’éclairement impliqués. L’étude des interactions entre la lumière et l’eau consiste un domaine de recherche important en physique, notamment dans le domaine de l’océanologie. En informatique graphique plusieurs travaux se sont attelés à transcrire ces résultats de la physique en images de syn-thèse [Wat90,PA00,IDN03], réalistes mais généralement coûteuses à calculer. Des solutions temps-réel existent mais s’appuient généralement sur des hypothèses sim-plificatrices [NN94,HVT+06].

Les effets spéculaires que sont la réflexion et la réfraction sont importants à prendre en compte pour rendre correctement une surface d’eau. Jusqu’à récem-ment, seules les réflexions planes ou les réflexions courbes d’environnements théoriquement infiniment lointains pouvaient être synthétisées en temps-réel par re-flection mappingou environment mapping [BN76,Gre86]. Certains travaux s’appuyant sur un échantillonnage de l’espace des rayons lumineux [HLCS99,YYM05,LFY+06] permettent d’obtenir de bons résultats en temps-réel au prix d’un précalcul coû-teux à stocker en mémoire. Plus récemment des approches utilisant des im-posteurs en relief, éventuellement recalculés dynamiquement, et des algorithmes de raycasting sur GPU arrivent à obtenir des réflexions correctes en temps-réel [SKALP05, PMDS06]. D’autres approches s’appuient sur une déformation de la géométrie pour pouvoir la plaquer sur une surface courbe, généralement simple [RH06].

Les travaux existants sur le rendu d’effets de réfraction considèrent générale-ment l’objet isolé dans un environnegénérale-ment infinigénérale-ment loin [GLD06]. Les travaux récents s’appuient de façon plus ou moins exacte sur une forme simplifiée de ray-casting effectuée dans une représentation à base d’images de l’objet transparent et de la scène environnante [Wym05,DW07,HQ07,OB07].

Les caustiques sont la conséquence de réflexions et réfractions par des sur-faces courbes, faisant se concentrer les rayons lumineux à certains endroits. Elles

sont généralement calculées à l’aide de photon mapping [Jen01] et peuvent être coû-teuses à rendre. Des méthodes interactives existent, basées sur différentes straté-gies d’émission et de rassemblement de photons [EAMJ05, DS06, WD06, SKP07,

Wym08].

Un récent état de l’art recensant les techniques existantes relatives au rendu en temps-réel de réflexions, de refractions et de caustiques en fait une classification intéressante [SKUP+09].

6.3 Mod `ele d’ ´eclairement simplifi ´e

L’algorithme de rendu que nous proposons s’appuie sur une combinaison sim-plifiée de raytracing et de photon mapping. La phase de raytracing permet en lançant un rayon depuis l’oeil de déterminer quelles sont les surfaces visibles après réfle-xion et réfraction. L’éclairement de la surface de fond, a priori complexe à cause de la réfraction subie par les rayons provenant de la source lumineuse avant d’attein-dre cette surface, sera calculé par une phase de photon mapping (qui appartient à la classe des algorithmes de forward rendering).

Nous effectuons les hypothèses suivantes :

– le rayon réfléchi n’intersecte pas la surface d’eau une seconde fois;

– le rayon réfracté ne ressort pas de l’eau, il intersecte toujours la surface de fond;

– le lumineux ne subit pas d’effet de diffusion multiple (multiple scattering) dans l’eau : il la traverse en ligne droite;

– la surface de fond possède une réflectance lambertienne.

Les deux premières hypothèses permettent d’éviter de devoir effectuer un lancer de rayons récursif coûteux. Elles sont acceptables car des effets de réflexion se-condaires (après deux rebonds) sur une surface irrégulière comme celle de l’eau sont généralement imperceptibles, et l’effet d’inclinaison des rayons induit par la réfraction les dirige vers le bas, ne leur laissant qu’une faible probabilité d’inter-secter la surface d’eau une seconde fois. Encore une fois c’est un effet secondaire qui est difficilement perceptible. Les radiances obtenues pour ces deux rayons sont combinées par le terme de Fresnel dont une bonne approximation est donnée par Schlick [Sch93].

La troisième hypothèse permet d’effectuer un simple raycasting à l’intérieur du volume d’eau pour obtenir la radiance issue du fond. Elle n’empèche cependant pas d’utiliser un modèle réaliste de diffusion simple (single scattering) permettant de rendre les variations de couleur produites par le parcours du rayon à travers l’eau, facteur important de réalisme. Cela suppose aussi que le volume d’eau ne contienne rien d’autre que ce qui est représenté dans la carte de hauteur pour Sf ond (on peut ainsi inclure des objets fixes au fond de l’eau, comme des cailloux par exemple, mais on ne pourra pas rendre un objet comme un poisson en mouvement à l’intérieur de l’eau).

Enfin la quatrième hypothèse nous permet de recourir à une version simple de photon mapping pour calculer l’éclairement de la surface de fond. Ainsi cet éclaire-ment pourra être échantillonné dans une carte d’éclaireéclaire-ment (illumination map) sur