• Aucun résultat trouvé

7 Sc `enes d’objets en mouvement

Dans cette section nous pr´esentons des r´esultats concernant le traitement des sc`enes contenant des objets en mouvement. Nous ne donnons que des ´ebauches d’algorithmes, aucune impl´ementation n’ayant ´et´e faite.

Nous pensons cependant que l’importance de ces questions justifie une pr´esentation, y compris sous cette forme pr´eliminaire.

7.1 Ev ´enements visuels temporels ´

Lorsqu’un objet se d´eplace, la topologie du squelette de visibilit´e est modifi´ee si un ´ev´enement visuel temporel se produit, comme nous l’avons pr´esent´e dans la section 3 du chapitre pr´ec´edent.

Nous pr´esentons ici l’exemple d’un ´ev´enement V EV et montrons comment le squelette de visibilit´e est mo-difi´e. La section suivante montrera comment un tel ´ev´enement peut ˆetre d´etect´e. Les autres sortes d’´ev´enements visuels (EEEEE, EEEV , FFE, FEEE, FEV ,:::) peuvent ˆetre trait´es de mani`ere semblable.

Dans la figure 3.19 l’arˆete e se d´eplace de droite `a gauche. Les deux arcs EV v1e et ev2se rencontrent lors de l’´ev´enement visuel temporel v1ev2.

Les deux arcs EV sont coup´es en trois, `a cause de l’occultation due `a l’autre sommet. Quatre nœuds v1ee3, v1ee4, e1ev2et e2ev2sont cr´e´es, ainsi que quatre arcs EEE e1ee3, e1ee4eeee3et e2ee4. Le changement r´eciproque se produit si l’arˆete se d´eplace dans la direction oppos´ee.

Ces changements sont locaux pour le squelette de visibilit´e, mˆeme si les arˆetes, sommets et faces impliqu´es sont distants dans la sc`ene.

7.2 D ´etection des ´ev ´enement visuels temporels

La d´etection d’un ´ev´enement V EV peut ˆetre faite comme suit. Les deux arcs EV qui se rencontrent ont les mˆemes polygones `a leurs extr´emit´es. Ceci est toujours vrai pour des arcs qui se rencontrent lors d’un ´ev´enement visuel temporel : ils ont toujours les extr´emit´es de l’´ev´enement temporel. Ils ont un g´en´erateur commun, et l’un des arcs doit ˆetre engendr´e par l’objet dynamique. Une mise `a jour dynamique du squelette de visibilit´e consiste donc `a regarder, pour chaque arc li´e `a l’objet dynamique, quel est le prochain ´ev´enement visuel temporel dans lequel il est impliqu´e.

Consid´erons l’arc v1e li´e `a l’objet dynamique. Pour qu’il y ait rencontre, un autre arc doit avoir les mˆemes extr´emit´es (le sol et l’infini) et doit ˆetre engendr´e par e ou v1. De tels arcs sont facilement trouv´es en recherchant dans la case du tableau correspondante. Pour faciliter la recherche multicrit`ere sur les g´en´erateurs, une structure de recherche adapt´ee doit ˆetre utilis´ee.

v2e

FIG. 3.19: Mise `a jour du squelette de visibilit´e en cas de mouvement d’objet. L’arˆete e en se d´eplac¸ant de droite `a gauche engendre un ´ev´enement visuel temporel qui est la rencontre de deux arcs EV ayant les mˆemes extr´emit´es et un g´en´erateur commun (ici l’arˆete e). Quatre nœuds sont cr´e´es, les arc EV sont coup´es en trois et huit arcs sont cr´e´es. Cet ´ev´enement et les changements topologiques sont locaux dans le squelette de visibilit´e.

Tous les ´ev´enements visuels sont ensuite tri´es et trait´es au fur et `a mesure. Quand un ´ev´enement se produit, le squelette de visibilit´e est localement mis `a jour. La liste des ´ev´enements temporels doit elle aussi ˆetre mise `a jour. On v´erifie si les arcs modifi´es peuvent en rencontrer d’autres, et on supprime les ´ev´enements li´es aux arcs d´etruits.

Si la plupart des objets de la sc`ene sont en mouvement, on recherche syst´ematiquement dans chaque case de tableau d’arcs s’il y a des rencontres. Tous les arcs qui ont un g´en´erateur en commun (face, arˆete, sommet) sont confront´es pour une rencontre ´eventuelle.

7.3 Application possible : mise `a jour de facteurs de forme

Un exemple d’application possible est la mise `a jour de facteurs de forme pour la simulation de l’´eclairage avec des objets en mouvement. Lorsqu’un objet se d´eplace, certains facteurs de forme doivent ˆetre recalcul´es : ceux qui concernent les faces de l’objet en mouvement, mais aussi les facteurs de forme en visibilit´e partielle pour lesquels l’objet est un bloqueur. De plus, certaines paires d’objets deviennent mutuellement visibles, ou compl`etement occult´ees, ce qui n´ecessite d’´etablir ou de supprimer la repr´esentation du transfert lumineux correspondant. Le squelette de visibilit´e est un outil efficace pour d´etecter toutes ces modifications.

La visibilit´e mutuelle de deux polygones f1et f2est affect´ee par un objet si et seulement s’il y a un arc du squelette de visibilit´e li´e `a cet objet dans la liste d’arcs entre f1et f2. Cela donne une caract´erisation imm´ediate et exacte des facteurs de forme `a recalculer.

La mise `a jour d’un facteur de forme commencera ou arrˆetera d’ˆetre n´ecessaire si et seulement s’il intervient un ´ev´enement visuel temporel qui a un g´en´erateur ou une extr´emit´e sur chacune des faces. Par exemple, dans la figure 3.19, le facteur de forme entre les faces adjacentes `a v1et v2commence `a n´ecessiter un recalcul `a cause de l’occultation due `a e. Le recalcul peut ˆetre fait localement `a l’int´erieur de la vue correspondante : la quantit´e

`a retirer au facteur de forme correspond `a la surface qui devient cach´ee par e.

Nous renvoyons le lecteur aux travaux de Orti et al. [ORDP96] pour un d´eveloppement ´equivalent dans le plan.

8 Conclusion

8.1 R ´esum ´e

Nous avons pr´esent´e une nouvelle structure de donn´ees appel´ee le squelette de visibilit´e, qui d´ecrit toute la visibilit´e globale d’une sc`ene polygonale 3D. Il s’agit d’un graphe dans l’espace des droites, dont les nœuds sont les droites poignardantes extrˆemes engendr´ees par l’interaction de sommets, d’arˆetes et de faces. Ces droites sont calcul´ees grˆace `a des op´erations simples de synth`ese d’images, des intersections droite-plan ou du lancer de rayon. Les arcs du graphe sont les ensembles de droites critiques qui sont adjacents aux droites extrˆemes. L’id´ee clef qui rend notre construction simple est de traiter explicitement uniquement les nœuds, et de d´eduire topologiquement les arcs grˆace au catalogue d’adjacences que nous avons pr´esent´e. Nous avons ainsi propos´e un algorithme complet de construction, qui comprend la d´etection et l’insertion des nœuds et des arcs qui leur sont adjacents.

Nous avons pr´esent´e une impl´ementation de l’algorithme de construction ainsi que diff´erentes requˆetes : partie d’un polygone visible depuis un sommet de la sc`ene, maillage de discontinuit´e pour toute paire de polygones de la sc`ene, liste exacte des bloqueurs entre deux faces et limites d’occultation.

Notre impl´ementation montre que, malgr´e une complexit´e asymptotique th´eorique ´elev´ee, la m´ethode reste en pratique utilisable pour la s´erie de sc`enes que nous avons utilis´ees. De plus, nous avons pr´esent´e une ap-proche pour la construction `a la demande ou paresseuse qui est un premier pas vers des techniques progressives et hi´erarchiques pour le squelette de visibilit´e.

8.2 Discussion et travaux futurs

Robustesse

La robustesse et le passage `a l’´echelle sont les deux probl´ematiques majeures de travaux futurs. La loca-lit´e de notre algorithme de construction limite l’effet d’´eventuelles erreurs ; et le traitement des d´eg´en´erescences que nous avons impl´ement´e permet de traiter la plupart des sc`enes de synth`ese d’images. Cependant, l’impl´ementa-tion a ´et´e fastidieuse et ardue, et nous ne pouvons pr´etendre que toutes les configural’impl´ementa-tions sont trait´ees.

Nous ne pensons pas que les probl`emes de robustesse doivent ˆetre trait´es en recourant `a de l’arithm´etique exacte (par opposition aux calculs sur les flottants). Les sc`enes rencontr´ees en pratique pr´esentent de nom-breuses d´eg´en´erescences qui ne sont pas le fruit du hasard, mais bien inh´erentes `a la sc`ene, comme les contacts entre objets ou le parall´elisme. Ces configurations doivent ˆetre prises en compte et non trait´ees comme si les objets ´etaient en position g´en´erique. Si deux objets se touchent, nous ne voulons pas calculer un ´ev´enement visuel qui passent entre eux parce que la dixi`eme d´ecimale est l´eg`erement diff´erente. Nous voulons d´etecter que nous avons affaire `a une configuration d´eg´en´er´ee, et qu’`a cause du contact, aucune visibilit´e n’est possible.

Cela ne dispense pas de l’utilisation d’arithm´etique pr´ecise (si ce n’est exacte) pour d´etecter les cas d´eg´en´er´es.

Cependant, un traitement sp´ecifique doit ensuite ˆetre appliqu´e.

Cela rend malheureusement l’impl´ementation fastidieuse car cela augmente beaucoup le nombre de cas diff´erents `a traiter. Pour r´esoudre ce probl`eme, une d´efinition g´en´erale de droite poignardante extrˆeme pourrait ˆetre utilis´ee. D´efinissons une droite poignardante extrˆeme comme passant par n arˆetes (avec n4) (cf. figure 3.20). Les arcs adjacents peuvent ensuite ˆetre ´enum´er´es en consid´erant tous les triplets parmi ces arˆetes. La configuration de chaque triplet d’arˆetes doit ˆetre test´ee (en incluant un test de d´eg´en´erescence) pour d´ecider si l’arc doit est cr´e´e ou annul´e. Cela permettrait l’utilisation d’une seule proc´edure l`a o `u notre impl´ementation actuelle requiert du code sp´ecifique pour chaque type de droite poignardante extrˆeme. Du code sp´ecifique doit cependant ˆetre ´ecrit pour chaque type d’arc (EV , EEE, FE, ou Fv).

Consid´erons l’exemple de la figure 3.20. Les g´en´erateurs sont tout d’abord tri´es le long de la droite. Les arcs g´en´er´es par V1sont trait´es en premier. Deux arcs V1E1sont cr´e´es (avec une extr´emit´e droite diff´erente). V1E2 est annul´e `a cause de l’occultation due `a E1. Pour un triplet ou une paire de g´en´erateurs, la proc´edure consiste

`a tester l’occultation par un autre g´en´erateur qui se trouve entre eux, puis `a trouver les extr´emit´es (parmi les extr´emit´es de la droite poignardante extrˆeme et les faces adjacentes aux autres g´en´erateurs).

Une autre approche pour am´eliorer la robustesse de la construction est une r´eparation a posteriori du sque-lette. Comme nous l’avons d´ej`a vu, une erreur n’entraˆıne des incoh´erences que localement. Un post-calcul pourrait ˆetre utilis´e pour relier les arcs pendants ou pour supprimer les ´el´ements inutiles du graphe de mani`ere coh´erente, si ce n’est exacte. Les probl`emes de robustesse seront aussi abord´es dans la section suivante.

E

1

E

2

E

3

V

2

V

3

F

1

F

2

V

1

FIG. 3.20: D´efinition g´en´erale d’une droite poignardante extrˆeme.

Passage `a l’ ´echelle

Bien que le comportement pratique de notre algorithme de construction soit bien meilleur que sa complexit´e th´eorique, un co ˆut quadratique n’est toujours pas acceptable pour une utilisation pratique sur de grandes sc`enes.

Nous pensons qu’une structure de visibilit´e doit ˆetre d´evelopp´ee qui offre un compromis avec la pr´ecision quand les objets deviennent lointains. Une approche hi´erarchique devrait ˆetre explor´ee, en calculant un squelette de visibilit´e exact `a l’int´erieur de regroupements d’objets, et une autre structure entre ces regroupements. Nous avons d´ej`a ´etudi´e une telle approche en 2D [Dur95].

N´eanmoins, il est difficile de d´efinir une structure de visibilit´e approximative entre regroupements d’objets parce que la d´efinition mˆeme de visibilit´e approximative est loin d’ˆetre imm´ediate. Un groupe d’objet n’est pas opaque, sa transmittance doit ˆetre prise en compte. Les travaux de Soler [Sol98, SS96b] constituent une contribution tr`es int´eressante dans ce sens.

Le squelette de visibilit´e est une structure de graphe. La litt´erature sur les graphes a sˆurement beaucoup `a nous apprendre. Quelles sont les propri´et´es du squelette de visibilit´e en tant que graphe ? Des techniques de compression de graphe devraient ˆetre essay´ees. Consid´erons l’exemple de deux triangles en visibilit´e totale.

Cette situation pourrait ˆetre d´etect´ee et factoris´ee pour compresser l’information de visibilit´e.

La simplification du squelette `a l’aide de suppression de sommet ou de fusion d’arˆete (edge collapse) est une autre voie int´eressante. L’effet de telles op´erations sur l’information de visibilit´e doit ˆetre analys´e pr´ecis´ement, en particulier leurs cons´equences globales. Par exemple, quand l’ombre d’un objet finement maill´e est consid´er´ee, des ´ev´enements pourraient ˆetre fusionn´es. Cela supprime cependant l’information de visibilit´e li´ee aux sommets correspondants de l’objet.

Bien entendu, des restrictions li´ees `a l’application peuvent aider `a guider la simplification, de mˆeme que la d´efinition de la visibilit´e approximative. Le maillage de discontinuit´e et la d´etermination de parties visibles pour la simulation de l’´eclairage fournissent un cadre tout indiqu´e, puisque des approches hi´erarchiques y ont

´et´e d´evelopp´ees [HSA91, SAG94, Sil95].

De plus, nous pensons que les probl`emes de passage `a l’´echelle et de robustesse gagneront `a ˆetre abord´es simultan´ement, puisqu’une approche hi´erarchique permet de d´efinir naturellement la notion d’´echelle qui peut ˆetre utilis´ee pour d´efinir des seuils pertinents pour la d´etection de configurations d´eg´en´er´ees. Le mˆemeεpeut ˆetre utilis´e pour d´eterminer qu’une information de visibilit´e n’est pas perceptible et que deux ´el´ements sont en configuration d´eg´en´er´ee.

Autres probl `emes

Le squelette de visibilit´e peut ˆetre d´efini pour des sc`enes d’objets courbes comme les faces de dimension 0 et 1 du complexe de visibilit´e correspondant. Les ´ev´enements visuels sont alors d´ecrits par la th´eorie des singu-larit´es des applications continues (cf. annexe A). Malheureusement, ´etendre notre algorithme de construction n’est pas aussi simple. Le plus gros probl`eme est celui de la param´etrisation des arcs, qui ne peut plus ˆetre bas´ee sur la position sur une arˆete. Cela empˆeche de d´efinir un ordre pour les arbres de recherche, en particulier

pour les objets concaves.

La mise `a jour du squelette apr`es l’ajout ou la suppression d’un objet est diff´erente de la mise `a jour en cas de mouvement d’un objet. Grˆace `a sa localit´e, notre algorithme de construction peut ˆetre adapt´e pour n’effectuer des calculs que l`a o `u c’est n´ecessaire.

Le squelette de visibilit´e permet en un sens d’´emuler le complexe de visibilit´e grˆace aux arbres de recherche.

Les fronti`eres de dimension 0 et 1 d’une 4-face du complexe sont regroup´ees dans un arbre de recherche du squelette. Pour une paire de polygones donn´ee, l’information relative aux 4-faces correspondantes est stock´ee dans la case du tableau index´ee par les deux faces. Ces questions m´eritent une plus ample ´etude.

Dans le prochain chapitre, nous utiliserons le squelette de visibilit´e pour la simulation de l’´eclairage par la m´ethode de radiosit´e hi´erarchique. Nous montrerons qu’il permet une simulation efficace et pr´ecise, avec des ombres de haute qualit´e mˆeme dans des configurations difficiles comme des sc`enes ´eclair´ees par plusieurs sources ou par un ´eclairage principalement indirect.

L’application du squelette `a d’autres techniques devrait ˆetre mise en œuvre. En particulier, en vision par or-dinateur, les graphes d’aspect [Kv76, Kv79, EBD92], les enveloppes visuelles [Lau94, Lau95, Lau97, Lau99]

ou le calcul de points de vue sans occultation [TTK96] pourraient b´en´eficier des ´ev´enements visuels du squelette. En robotique, la planification de trajectoire avec visibilit´e pour des poursuites-´evasions [LLG+97, GLL+97, GLLL98] demande aussi une partition de la sc`ene selon les ´ev´enements visuels. N´eanmoins, le coˆut exponentiel de la recherche dans un graphe qui est ensuite n´ecessaire fait de l’extension des techniques 2D actuelles vers la 3D un v´eritable d´efi.

Radiosit ´e hi ´erarchique