• Aucun résultat trouvé

Prairie, seconde ´edition

La premi`ere version des prairies a donn´e suite `a une nouvelle mouture principalement d´evelop-p´ee par Sylvain Guerraz [GPR+03] lors de son stage de magist`ere. J’ai particip´e `a l’encadrement, principalement effectu´e par Fran¸cois Faure. Les diff´erentes repr´esentations et leurs animations res-tent sensiblement les mˆemes. En revanche, la flexibilit´e du mod`ele a ´et´e am´elior´ee, permettant de repousser certaines limitations inh´erentes `a la premi`ere version.

4.2.1 Rendu

Voici les am´eliorations portant sur le rendu de la prairie. G´en´eration `a la vol´ee

L’utilisation de tableaux de position, utilis´es dans la premi`ere version, limite la vari´et´e des mouvements (cf. sous-section 4.1.2). L’apparence d’un brin d’herbe ´etant simple et variant peu, il est facile de g´en´erer ce dernier `a la vol´ee sans jamais stocker sa g´eom´etrie. La courbe d’un brin d’herbe est donc calcul´ee grˆace `a une simple courbe de Hermite.

Il faut cependant faire attention `a conserver approximativement la taille du brin d’herbe pour n’importe quelle param´etrisation (tout droit, courb´e, couch´e). Les fonctions permettant de conser-ver la longueur d’une courbe sont rares et coˆuteuses. Par soucis d’efficacit´e, une taille `a peu pr`es constante est assur´ee par une fonction de “rapetissage” (cf. figure 4.19).

Test : alpharef

Test : alpha < alpharef

Fig. 4.20 – En variant la valeur de alpharef, la densit´e des textures varie dynamiquement.

Fig. 4.21 – Au lieu de plusieurs tranches, les polygones textur´es sont d´esormais autour des carr´es d’herbe (ceux-ci sont par cons´equent plus petit). Remarquons que cela ne r´esoud pas le probl`eme d’une vue non-rasante : l’observateur, dans ce cas, verra des trous dans le terrain.

Param´etrage des textures

Les textures utilis´ees sont d´esormais param´etr´ees par un facteur alpha. Celui-ci, grˆace `a l’uti-lisation du GL ALPHA TEST, permet d’afficher plus ou moins de brins d’herbe, selon la valeur du seuil alpha (cf. figure 4.20). Ce syst`eme a ´et´e utilis´e avec succ`es pour les textures 2D et 2.5D. Il permet, grˆace `a une carte de densit´e, d’obtenir des terrains dont la r´epartition d’herbe est tr`es variable (cf. figure 4.24).

C’est donc en ajoutant un degr´e de libert´e dans le rendu des textures qu’il a ´et´e possible de varier la densit´e. L’ajout de ce degr´e de libert´e est r´ealis´e au d´etriment de l’association des brins d’herbe 3D et 2.5D. Cela signifie que lors d’une transition entre ces deux repr´esentations, la correspondance des brins d’herbe n’est plus assur´ee.

Ce choix all`ege ´enorm´ement la conception des transitions : il n’est plus n´ecessaire de garder les coordonn´ees des brins d’herbe dessin´es dans les textures (cf. figure 4.4). Cette perte entraˆıne une l´eg`ere d´egradation du rendu : durant le d´epla¸cant de l’observateur, l’observateur attentif distingue une onde de discontinuit´e au niveau des transitions entre la 3D et la 2.5D. Mˆeme si cela s’annonce d´elicat, il semble possible de conserver la correspondance des brins d’herbe tout en gardant un param´etrage de la densit´e. Affaire `a suivre...

Positionnement des textures 2.5D

Afin de rem´edier au probl`eme de “l’observation rotative”, les polygones textur´es entourent les carr´es d’herbe (cf. figure 4.21). De cette fa¸con, la g´eom´etrie ne d´epend moins de l’angle d’observa-tion. Pour une qualit´e similaire, le nombre de polygones utilis´e est tr`es l´eg`erement sup´erieur. En effet, l’orientation est moins optimis´ee pour l’observateur. En revanche, la cam´era peut maintenant se d´eplacer sans contrainte dans la prairie, sans soulever le probl`eme des “l’observation rotative” ´evoqu´e plus haut.

Sous-niveaux de d´etail

Au sein d’un mˆeme niveau de d´etail, la g´eom´etrie est ´echantillonn´ee plus ou moins finement selon la distance `a la cam´era (cf. figure 4.22). Cela permet une meilleure adaptation de la pr´ecision

Pr´ecision 3D Pr´ecision 2.5D

Fig. 4.22 – Dans la seconde version des prairies, l’´echantillonnage de la g´eom´etrie varie au sein d’un mˆeme niveau de d´etail.

A A A A A Cumulateur R

Emetteur Emission du mouvement R´ecepteur

Fig. 4.23 – Le cumulateur combine les diff´erentes influences des fonctions d’animation appliqu´ees `a un r´ecepteur. Par d´efaut, il propose de pond´erer les influences aux moyens de simples coefficients.

et ainsi un meilleur Qualit´e × Rapidit´e.

4.2.2 Animation

Un effort a aussi ´et´e port´e sur les fonctions d’animation. Moteur d’animation proc´edurale

Tout d’abord, un moteur d’animation proc´edurale a ´et´e d´evelopp´e. Il g`ere la vie des fonctions d’animation. Son rˆole est le suivant :

– il g´en`ere al´eatoirement des fonctions d’animation (des bourrasques par exemple) ;

il introduit un cumulateur (cf. figure 4.23) qui combine les effets des diff´erentes fonctions d’animation afin de les transformer en une expression compr´ehensible par les fonctions d’af-fichage (l’herbe).

il optimise la cr´eation du champ d’influence (cf. figure 4.13) grˆace `a un rendu offscreen basse-r´esolution r´ealis´e sur la carte graphique.

Traces de pas

Une fonction d’animation d’´ecrasement d’herbe a ´et´e ajout´ee. Elle permet de simuler proc´edu-ralement l’herbe ´ecras´ee (par un personnage par exemple) en la couchant temporairement sur le sol (cf. figure 4.24). Pour plus d’informations sur cette fonction, r´ef´erez vous `a [GPR+03].

Fig. 4.24 – Voici quelques captures d’´ecran tir´ees de la seconde version de la prairie. Le rendu d’arbres a ´et´e r´ealis´e par Infograme lors d’une collaboration PRIAM. Leur animation a fait l’objet d’une publication [GCF01] conjointe entre notre ´equipe et Infogrammes.