• Aucun résultat trouvé

4.3 Perspectives

4.3.2 Vers Dynamic Graph

Les difficult´es rencontr´ees durant le d´eveloppement de la prairie sont la motivation initiale d’un outil g´en´erique pour la mod´elisation proc´edurale multi-´echelle.

Une mod´elisation par complexification

Tout d’abord, la prairie, que ce soit dans la premi`ere ou la seconde version, est bien un exemple de mod´elisation par complexification. Cela peut ne pas paraˆıtre ´evident compte tenu du fait qu’elle n’a pas ´et´e pr´esent´ee de son niveau le plus grossier vers le niveau le plus fin. Pourtant, la diversit´e des repr´esentations utilis´ees, la complexit´e du langage descriptif (le C++) et la quantit´e tr`es faible de pr´ecalculs pour la version finalement retenue sont des signes qui ne trompent pas.

Remarquons que durant la conception de la premi`ere version, toute la structure de la prairie reposait sur des pr´ecalculs lourds (chaque brin d’herbe de la prairie existait `a son niveau le plus

fin). Cela n’a pas ´et´e ´evident d’assouplir ces pr´ecalculs pour quitter doucement la simplification et se rapprocher de la complexification. Cependant, la complexit´e du mod`ele et de son animation n’offrait pas d’autre choix que d’aller dans cette direction. La seconde version de la prairie est d’ailleurs un pas de plus vers la complexification.

Analyse du temps de d´eveloppement

Lors de la mod´elisation de la prairie, le temps pass´e `a am´eliorer son esth´etisme a ´et´e quasiment nul ! En un sens, ceci est rassurant : je ne suis pas un artiste. Dans le cadre de ma th`ese, mon rˆole n’est pas de r´ealiser de belles choses, mais de proposer des moyens pour y arriver.

N´eanmoins, la question se pose : o`u est la difficult´e ?

– une grande partie de l’´energie a servi `a trouver une repr´esentation adapt´ee. Il a fallu aban-donner toute repr´esentation maill´ee pour finalement aboutir `a des fonctions ´evalu´ees `a la vol´ee ;

– la r´ealisation des transitions, d´ej`a d´elicate, a ´et´e compliqu´ee par les probl`emes d’oscillation ´evoqu´es en 4.1.3 ;

– pour d´eboguer, il a fallu programmer des moyens de restreindre l’affichage `a certains niveaux de d´etail, ou `a un certains individus ;

– des difficult´es dans la gestion des primitives de vent de la premi`ere version a conduit `a la r´ealisation un moteur d’animation proc´edurale (cf. sous-section 4.2.2).

En fait, les seuls repr´esentants du temps pass´e sp´ecifiquement sur la prairie sont les transitions (ce qui est normal, compte tenu de ce qui a ´etait dit en 3.1). En somme, disons que 10% du temps qui a ´et´e n´ecessaire `a la r´ealisation des prairies a directement servi ce but. C’est peu.

La seconde version

La premi`ere version a ´et´e d´evelopp´ee en six mois par une personne. La seconde version a profit´e de l’exp´erience acquise durant la premi`ere ainsi que du moteur d’animation proc´edurale. Pour des r´esultats bien meilleurs, cette derni`ere a ´et´e impl´ement´ee en trois mois par un stagiaire niveau maˆıtrise et comprend une interface graphique d´edi´ee (cf. figure 4.25). Remarquons que l’utilisation de transitions n’assurant pas la correspondance des brins d’herbe un `a un a notablement all´eg´e la mod´elisation. En revanche, la mise en commun des arbres et de la prairie pour [GPR+03] a demand´e une certaine ´energie.

Vers un outil g´en´erique

La prairie, comme toutes les r´ealisations proc´edurales multi-´echelles, a un besoin crucial d’un environnement de mod´elisation. La plupart des crit`eres ´enum´er´es dans 3.3.4 sont ici valides :

– calcul de la pr´ecision ;

– facilit´e de mise en place des fonctions de transition entre diff´erentes repr´esentations ;

– mise en commun des mod`eles ;

– outils de visualisation et de d´ebogage des mod`eles. De fa¸con moins ´evidente :

– persistance de l’information : les questions se sont pos´ees pour les traces de pas ;

– d´etermination des objets occult´es : ceci n’a pas ´et´e abord´e dans ce chapitre, mais un algo-rithme de d´etection d’occultation am´eliorerait les performances de notre algoalgo-rithme ; Le dernier point non abord´e est celui de la coh´erence temporelle. La premi`ere version de la prairie est bas´ee sur une information dynamique mise `a jour `a chaque pas de temps : les carr´es d’herbe visibles restent en m´emoire de fa¸con permanente. Dans la seconde version, la g´en´eration des brins d’herbe est r´ealis´ee `a la vol´ee (cf. sous-section 4.2.1), sans aucune m´emoire de l’´etat pr´ec´edent. Certaines fonctions d’animation n´ecessitant la connaissance de cet ´etat, il n’a pas ´et´e ´evident de rendre permanentes certaines donn´ees (c’est en fait le moteur d’animation qui assure cette permanence). Ici, une bonne gestion de la dur´ee de vie de l’information aurait ´et´e tr`es utile. La r´ealisation des prairies anim´ees est la premi`ere ´etape d’une pens´ee qui, me semble-t-il aujourd’hui, ne pouvait aboutir que dans la r´ealisation de Dynamic Graph.

AFFICHAGE

Fig. 4.25 – L’interface graphique de la seconde ´edition de la prairie permet de r´egler de tr`es nombreux param`etres : densit´e de l’herbe, d´eclenchement des transitions, contrˆole des fonctions d’animation.

Chapitre 5

Dynamic Graph : un outil

g´en´erique pour la mod´elisation

multi-´echelle

Ce chapitre propose une vue d’ensemble de Dynamic Graph, un outil de mod´elisation par complexification g´en´erique que j’ai con¸cu et d´evelopp´e durant ma th`ese. Il introduit les chapitres suivants :

– le chapitre 6 d´etaille le coeur de Dynamic Graph, c’est-`a-dire les m´ecanismes n´ecessaires `a l’´evaluation et l’affichage du mod`ele ;

– le chapitre 7 prend le point de vue du cr´eateur et d´ecrit l’acte de mod´elisation ainsi que les r´esultats obtenus.

Voici un survol des diff´erentes sections de ce chapitre.

Introduction `a Dynamic Graph : Bien que la prairie n’ait pas ´et´e r´ealis´ee avec Dynamic Graph, elle est une transition id´eale qui refl`ete parfaitement le cheminement de ma pen-s´ee. Ce chapitre d´ebute donc par la description du mod`ele de prairie tel qu’il aurait ´et´e r´ealis´e avec Dynamic Graph. Cela permettra d’introduire le langage descriptif de Dynamic Graph bas´e sur un nouveau concept : les amplifieurs.

´

Evaluation du mod`ele : Apr`es cette introduction `a Dynamic Graph, nous donnerons un pre-mier aper¸cu des m´ecanismes complexes qui assurent la transformation du mod`ele d´ecrit par le cr´eateur en pixel sur l’´ecran. Cette transformation est appel´ee ´evaluation. Notez que dans tout ce document, le terme ´evaluation doit ˆetre compris comme un synonyme de calcul (et non de validation).

Bilan interm´ediaire : la section 5.3 fait un bilan de ce chapitre et introduit le contenu des chapitres 6 et 7.

5.1 Introduction `a Dynamic Graph

La prairie, d´ecrite au chapitre pr´ec´edent, est ici reformul´ee avec le langage descriptif que propose Dynamic Graph. Cette section propose donc une entr´ee en mati`ere bas´ee sur cet exemple1. Nous verrons tout d’abord comment voir la prairie comme une mod´elisation par complexification et nous introduirons le concept d’amplifieur qui est le fondement du langage descriptif de Dynamic Graph. Enfin, nous aborderons le probl`eme complexe de la persistance d’information.

1Afin d’´eviter toute confusion, je tiens `a signaler que la prairie n’a pas ´et´e impl´ement´ee avec Dynamic Graph. N´eanmoins, l’adaptation ne poserait aucun probl`eme.