• Aucun résultat trouvé

3.3 Loi du cas particulier

4.1.3 Transition

Une attention particuli`ere a ´et´e port´ee sur la continuit´e des transitions. En effet, le marcheur (portant la cam´era) va se d´eplacer dans la prairie. Des transitions entre niveaux de d´etail doivent ˆetre d´eclench´ees pour que la qualit´e visuelle et le coˆut d’affichage ne soient jamais d´egrad´es. Nous consid´erons que les discontinuit´es visuelles durant le passage d’un niveau de d´etail `a un autre nuisent ´enorm´ement au confort visuel. Les transitions mises en œuvre entre chaque niveau sont donc des m´etamorphoses continues d’un niveau `a l’autre. L’´etat de complexion d’une transition se mesure par son avancement qui n’est rien d’autre qu’un coefficient d’interpolation.

En plus de cette continuit´e temporelle, les transitions 3D ↔ 2.5D assurent aussi une continuit´e “spatiale” : chaque brin d’herbe sur la texture a un homologue 3D (cf. figure 4.4). Nous verrons comment la construction des carr´es d’herbe permet cette correspondance, puis nous d´ecrirons les transitions.

Construction d’un carr´e d’herbe

Chaque brin d’herbe dans une texture 2.5D a un homologue 3D. Il est imaginable d’assurer cette correspondance en construisant, pour chaque carr´e d’herbe, autant de textures que n´ecessaire. Mais cela m`enerait tr`es vite `a un coˆut m´emoire exorbitant.

Lors d’une phase de pr´ecalcul, un certain nombre de tranches d’herbe sont g´en´er´ees. Chaque tranche d’herbe contient un ensemble de brins d’herbe dont les caract´eristiques sont tir´ees au hasard : taille, couleur, position de racine et la courbure.

Les textures utilis´ees pour la repr´esentation 2.5D sont chacune g´en´er´ees `a partir de l’une de ces tranches pr´ecalcul´ees (cf. figure 4.6). Ces textures sont obtenues par un rendu offscreen de la tranche correspondante avec une cam´era orthogonale. Chaque carr´e d’herbe pr´ecalcul´e est alors constitu´e de tranches plac´ees al´eatoirement (cf. figure 4.7).

Ainsi, avec peu de textures (i.e. de tranches d’herbe), il est possible de g´en´erer combinatoi-rement un grand nombre de carr´es d’herbe diff´erents. La correspondance des brins d’herbe un `a un est assur´ee par construction de la fa¸con suivante. Un certain nombre de texture sont initiale-ment g´en´er´ees au d´ebut du programme. Les tranches d’herbe sont ensuite g´en´er´ees `a partir de ces textures.

...

Exemple de bande Bandes pr´ecalcul´ees Diff´erentes combinaisons

Fig. 4.7 – Chaque carr´e d’herbe est constitu´e de plusieurs tranches d’herbe. Comme chaque tranche d’herbe utilise une texture, il est important d’´economiser de la m´emoire en gardant le nombre de tranche le plus petit possible. En fait, seules quelques tranches sont g´en´er´ees. Pour garder un aspect al´eatoire, un carr´e d’herbe est constitu´e par une certaine combinaison de ces tranches.

Transition 3D ↔ 2.5D

Lorsqu’un carr´e d’herbe bascule du premier niveau vers le deuxi`eme, chaque brin d’herbe 3D rejoint son homologue dans les textures 2.5D (cf. figure 4.8). Ceci est r´ealis´e par une simple interpolation du brin durant son mouvement (ce dernier sera d´ecrit en 4.1.4). En particulier, le brin d’herbe glisse sur le sol pour ´epouser sa nouvelle forme. Ce mouvement est invisible pour un œil non averti car il a lieu `a distance suffisante.

Lorsque l’interpolation est termin´ee, il faut “sauter” d’une repr´esentation `a l’autre. Ce passage ne peut pas ˆetre r´ealis´e de fa¸con totalement discontinue. En effet, compte tenu des repr´esentations diff´erentes (texture et g´eom´etrie), il existe toujours une diff´erence visuelle non n´egligeable entre les deux niveaux. Pour ´eviter tout artefact, un fondu enchaˆın´e est r´ealis´e2.

Remarquons que les distances o`u ont lieu les transitions sont d´etermin´ees de fa¸con compl`ete-ment empiriques. En effet, il nous a sembl´e pr´ef´erable, plutˆot que d’´etablir un espace de mesure `a la norme discutable, de laisser le maximum de degr´es de libert´e dans le param´etrage des transi-tions. Ces degr´es de libert´e ´etant modifi´es `a la vol´ee, la phase de calibration est tr`es rapide. Les crit`eres de calibration sont tout simplement la qualit´e du rendu, en ´eternelle opposition avec les performances.

Transition 2.5D ↔ 2D

Pour basculer de la repr´esentation 2.5D `a la repr´esentation 2D, les textures 2.5D s’enfonce dans le sol pendant que la repr´esentation 2D pousse (cf. figure 4.9). Aucune association de brin d’herbe n’est assur´ee, mais `a la distance o`u intervient cette transition, il n’est de toute fa¸con pas possible de distinguer un brin d’herbe individuellement.

Transition asynchrone (hyst´er´esis)

L’avancement des transitions ne d´ependait initialement que de la position de la cam´era. En cons´equence, pour certaines positions de la cam´era, l’avancement d’une transition pouvait rester `a mi-chemin entre un niveau de d´etail et le suivant. Ces positions interm´ediaires ne sont pas souhaitables pour la simple raison qu’elles sont plus coˆuteuses qu’un niveau d´etermin´e et offrent une moindre qualit´e de rendu. En effet, les ´etats transitoires n’existent que pour assurer la continuit´e et l’esth´etisme est maximal aux ´etats “de repos” (sans transition).

Ceci a tout naturellement men´e `a des transitions asynchrones qui, une fois d´eclench´ees, ´evo-luent inexorablement jusqu’`a leur complexion. Pour limiter les probl`emes d’oscillations entre des

2La fonction glP olygonOf f set ´evite les clignotements inh´erents `a toutes surfaces affich´ees sur le mˆeme plan avec OpenGL.

Avancement de la transition 3D → 2.5D

Racines des brins d’herbe vue de dessus :

0.0 1.0

Fig. 4.8 – Lors d’une transition entre le niveau 3D et 2.5D, chaque brin d’herbe d’une tranche rejoint, en cours d’animation, son homologue dans la texture.

Avancement de la transition 2.5D → 2D Observateur

0.0 1.0

2.5D Etat interm´ediaire´ Etat interm´ediaire´ 2D

Fig. 4.9 – Les transitions du niveau 2.5D vers le niveau 3D sont assur´ees par une simple astuce : lorsque qu’une repr´esentation “pousse”, l’autre “s’enterre”. Cette technique tr`es simple permet d’assurer un confort perceptuel tout `a fait acceptable.

2.5D 2D 3D

Positions de repos

Distance `a la cam´era Seuil de transition (hyst´er´esis)

Fig. 4.10 – Les transitions se d´eclenchent lorsque la distance de la cam´era au carr´e d’herbe passe par certain seuils. Pour ´eviter les oscillations entre deux niveaux de d´etails, les seuils sont diff´erents selon le sens de la transition.

                                                                         Courbure Courbure

Brin d’herbe directeur

3D 2.5D

Fig. 4.11 – Exemple de mouvements possibles en variant la courbure .

diff´erents niveaux de d´etail, des seuils de d´eclenchements diff´erents sont utilis´es d’un niveau `a l’autre (cf. figure 4.10). Cette technique est appel´e transition par hyst´er´esis par [LRC+02].