Résultats

La figure 4.6 montre le résultat de la méthode pour une scène composée du Buddha du Laboratoire d'Informatique Graphique de Stanford. Tous nos tests ont été faits avec une résolution d'écran et de textures de 512x512 pixels. Le nombre de tampon de profondeurs utilisés pour l'échantillonnage de la trajectoire est de 150, ce qui s'est avéré largement suffisant pour capturer toutes les variations de profondeur pour un tour complet autour de l'objet. Avec ces résolutions, le temps de précalcul (acquisition et segmentation) est d'environ 1 minute pour 15 segments. La taille en mémoire de la structure représentant les tampons de profondeurs est présentée dans la table 4.1.

Tableau 4.1: Taille de la structure selon différentes précisions pour la segmentation.
Sans compression (150 z-buffers) 75 Mo
15 segments 20 Mo
8 segments 10 Mo
6 segments 5 Mo


La table 4.2 détaille les caractéristiques des modèles que nous avons utilisés. La table 4.3 présente les taux d'affichage que nous obtenons en utilisant un nombre croissant de points de vue de référence. La seconde colonne correspond au taux d'affichage sans utiliser de compression des tampon de profondeurs, la colonne 3 avec compression sur 15 segments, et la dernière colonne en utilisant l'interpolation bilinéaire des profondeurs.

Figure 4.6: Résultats de l'interpolation.
[Modèle originel]\includegraphics[%
width=0.23\columnwidth,
keepaspectratio]{eps/tpb-0realmesh.bmp.eps}[Image reconstruite sans segmentation des profondeurs.]\includegraphics[%
width=0.23\columnwidth,
keepaspectratio]{eps/tpb-1realprofs.bmp.eps}[Segmentation sur 12 segments.]\includegraphics[%
width=0.23\columnwidth,
keepaspectratio]{eps/tpb-2_15segs.bmp.eps}[Compression sur 8 segments.]\includegraphics[%
width=0.23\columnwidth,
keepaspectratio]{eps/tpb-3_10segs.bmp.eps}

Le temps de rendu est en pratique indépendant de la complexité géométrique et dépend essentiellement de la bande passante maximale entre la mémoire vidéo et le GPU. La seconde colonne illustre ce point : avec un seul point de vue il y a un faible nombre de lectures en mémoire vidéo (adressage de texels). Plus le nombre de points de vue augmente, plus le nombre de lectures augmente et fait baisser les performances. Le pire cas étant d'utiliser l'interpolation bilinéaire, qui multiplie par 4 le nombre de lectures, faisant baisser le taux d'affichage en dessous de 10 FPS (NVIDIA GeForceFx 5600). Les deux dernières lignes montrent les résultats obtenus avec une ATI Radeon 9700 Pro et la bibliothèque graphique DirectX 9 (Pixel Shaders v.2). Cette carte est plus puissante et donne de meilleurs taux d'affichage, mais est très limitée en termes de longueur de shaders et empêche l'utilisation de l'interpolation bilinéaire des profondeurs. De plus, nous ne pouvons pas utiliser plus de deux points de vues de référence en même temps, ce qui nous oblige à utiliser l'algorithme multi-passes.

Figure 4.7: Comparaisons de la méthode avec différentes compressions.
\includegraphics[%
width=1.0\columnwidth,
keepaspectratio]{eps/eguk-fig11.eps}

La figure 4.7 montre le résultat de l'interpolation sur un tore à géométrie perturbée en utilisant différents nombres de segments pour la compression. A droite de chaque image nous avons comparé pixel par pixel la différence visuelle avec le rendu de l'objet réel. L'image résultante représente, sur une échelle en niveaux de gris, la différence entre la couleur de l'image reconstruite et l'image originelle, plus les pixels sont noirs, plus la différence est importante.


Tableau 4.2: Caractéristiques des modèles que nous avons utilisés. Le taux d'affichage correspond au rendu conventionnel du modèle avec une GeForceFx 5600, sans optimisations spécifiques.
Modèle Triangles Taille (Mo) FPS
Armadillo 345944 30.5 4.5
Tore 250000 11 10
Buddha 1087716 95 2
Dragon 871414 76.5 2.5



Tableau 4.3: Taux d'affichage obtenus (compression avec 15 segments).
Nb. points de vue 1 2 3 3(ATI) 4(ATI)
Sans compression 80 22 14 80 75
Compression 16 16 13 30 25
Compr.+interp. bilinéaire 15 10 6 o N.A.


Porquet Damien 2005-03-02