Sous-sections

Discussion

Dans cette partie nous avons présenté une méthode permettant d'effectuer le rendu interactif d'un modèle complexe de façon presque indépendante de sa complexité géométrique. En effet, celle-ci se retrouve exprimée dans la profondeur segmentée des pixels, et bien que notre algorithme de segmentation se soit avéré suffisamment performant pour les scènes standard que nous avons utilisées, il serait mis en échec par un modèle intriqué tel qu'un arbre. Malgré ce handicap, nous obtenons de bons résultats en termes de temps d'affichage. Dans nos tests, le modèle nécessitant le plus grand nombre de segments est le modèle ''Armadillo'' (figure 4.8 page [*]) : pour une trajectoire décrivant un cercle complet autour du modèle, 30 segments sont nécessaires.

Malgré l'utilisation de la carte graphique, le goulot d'étranglement de la méthode est la décompression, qui est calculée par le processeur central. Du fait de représentation en liste de segments, le temps de décompression est plus long vers la fin de la trajectoire ($ t=1$) car il est nécessaire de parcourir toute la liste. La variation du taux d'affichage atteint au maximum 5 FPS (AMD Athlon 1.4Ghz).

L'interpolation de points de vue, elle, est très peu gourmande en espace mémoire (quelques textures) et s'effectue intégralement avec l'aide de la carte graphique.

Les avantages et inconvénients de la méthode sont résumés ci-dessous.

Avantages

Inconvénients

Perspectives

De nombreux points pourraient être améliorés, dont notamment la segmentation des profondeurs. Il est envisageable de créer un algorithme de segmentation qui se baserait sur un seuil d'erreur visuelle pour subdiviser un segment. Ceci permettrait de ne pas subdiviser systématiquement les segments à chaque étape et de créer de plus grandes portions linéaires aux meilleurs endroits. La mémoire en serait d'autant réduite.

Concernant la liste de segments, il serait envisageable de l'organiser en une structure hiérachique permettant d'en accélérer l'accès. Un arbre binaire serait optimal pour cette tâche. Dans ce cas, le problème à traiter serait principalement l'espace mémoire nécessaire pour stocker un arbre par pixel.

Par ailleurs, il est possible d'augmenter le degré de liberté de la caméra virtuelle :

  1. En autorisant un changement d'angle de vue bien qu'en restant sur la trajectoire : si la scène complète est vue d'un point donné, nous pourrions considérer le plan de projection de la caméra (pour lequel on reconstruit l'image) comme un plan 3D et l'afficher dans l'espace de la scène, comme un billboard4.2. L'image obtenue serait exacte, tant que l'observateur ne s'écarte pas de la trajectoire.
  2. Il est possible de s'éloigner de la scène, dans l'axe de la direction de la caméra : le plan de projection originel serait également affiché dans l'espace de la scène comme un billboard.

D'autre part, les segments, représentés dans l'espace de la scène, pourraient être reliés de façon à créer une surface 3D, correspondant finalement à un modèle simplifié du modèle de base. Combiné à notre façon de repérer une disparité de profondeur (paragraphe 4.2.2.2 page [*]), la surface reconstruite pourrait être séparée en différentes couches, et nous éviterions ainsi les effets d'étirement (rubber-sheet) dans le maillage.

Figure 4.8: Application de la méthode au modèle Armadillo, compression sur 10 segments. Ligne du haut : interpolation à différentes position de la trajectoire. Ligne du bas : variation de la position de l'éclairage.
\includegraphics[%
width=0.25\columnwidth,
keepaspectratio]{eps/ipv-armadillo-rota2.eps}\includegraphics[%
width=0.25\columnwidth,
keepaspectratio]{eps/ipv-armadillo-rota4.eps}\includegraphics[%
width=0.25\columnwidth,
keepaspectratio]{eps/ipv-armadillo-rota6.eps}\includegraphics[%
width=0.25\columnwidth,
keepaspectratio]{eps/ipv-armadillo-rota8.eps}

\includegraphics[%
width=0.25\columnwidth,
keepaspectratio]{eps/ipv-armadillo-relight13.eps}\includegraphics[%
width=0.25\columnwidth,
keepaspectratio]{eps/ipv-armadillo-relight14.eps}\includegraphics[%
width=0.25\columnwidth,
keepaspectratio]{eps/ipv-armadillo-relight15.eps}\includegraphics[%
width=0.25\columnwidth,
keepaspectratio]{eps/ipv-armadillo-relight16.eps}

Porquet Damien 2005-03-02