Résultats

Concernant la phase de précalculs, étant donné que nous lançons beaucoup de rayons par texel (un rayon par direction de l'hémisphère), nos premiers essais nous obligèrent à accélérer cette partie : pour une résolution de 250 directions pour l'hémisphère et une définition de 64x64 texels pour les texture, le temps de calcul dépassait une heure pour une seule texture (Athlon 1Ghz). Nous avons alors utilisé un partitionnement de la scène de base en arbre octal (figure 3.8(b)). Bien que le temps de précalcul du lancer de rayon dépende fortement de la complexité de la scène, nous avons noté une accélération de l'ordre d'un facteur 20.

La figure 3.8 montre le résultat pour une seule texture plaquée sur la face supérieure de la boîte englobante. La définition de la texture est 128x128 texels ; la résolution de l'hémisphère est 256 directions.

Comme on peut le voir, des discontinuités apparaissent aux bordures de la texture, par rapport au modèle de base. Ces discontinuités sont dues à la faible résolution de l'hémisphère des directions.

Figure 3.8: Résultat de la méthode appliquée à un modèle de tore, en rendu à ombrage plat. La définition de la texture (figure (c) et (d)) est de 128x128 texels, l'hémisphère est constitué de 256 directions quantifiées. Temps de précalcul de 8 mn environ. Rendu à 15 FPS.
[Le modèle de base et sa boîte englobante.]\includegraphics[%
width=1.0\columnwidth,
height=3.3cm,
keepaspectratio]{eps/tbp-snap2.eps}[L'octree utilisé durant la phase de précalculs.]\includegraphics[%
width=1.0\columnwidth,
height=3.3cm,
keepaspectratio]{eps/tbp-snap1.eps}[Rendu de la face superieure de la boîte, texturée avec notre méthode.]\includegraphics[%
width=1.0\columnwidth,
height=3.3cm,
keepaspectratio]{eps/tbp-snap0.eps}[= (c) + interpolation bilinéaire des couleurs des texels.]\includegraphics[%
width=1.0\columnwidth,
height=3.3cm,
keepaspectratio]{eps/tbp-snap0-bilinear.eps}

Un autre problème se produit lorsque l'on affiche la boîte englobante complète : certaines directions donnent des discontinuités aux bordures entre les faces (figure 3.9(b)), tandis que d'autres directions d'observation donnent de meilleurs résultats (figure 3.9(a)).

Figure 3.9: Résultat de la méthode avec une boîte englobante complète. La définition des texture est 64x64 texels. La résolution de l'hémisphère est 250 directions.
[Angle d'observation favorable.]\includegraphics[%
width=1.0\columnwidth,
height=5cm,
keepaspectratio]{eps/tbp-favorable.ppm.eps}[Angle d'observation défavorable.]\includegraphics[%
width=1.0\columnwidth,
height=5cm,
keepaspectratio]{eps/tbp-non-favorable.ppm.eps}[Différences entre les directions d'échantillonnage des hémisphères des faces.]\includegraphics[%
width=1.0\columnwidth,
height=5cm,
keepaspectratio]{eps/tbp-hemisphere-257-dirs.eps}

Ceci est dû au fait qu'avec cet algorithme, les texels adjacents d'une face à l'autre de la boîte peuvent être calculés avec des directions très différentes. La figure 3.9(c) illustre ce point. Les directions des hémisphères des trois faces affichées sont représentées avec des couleurs différentes. Quand la direction d'observation est favorable, les directions les plus proches pour les trois hémisphères sont peu différentes. A l'inverse, quand les trois directions les plus proches sont trop différentes, les rayons utilisés pour reconstuire des texels voisins donnent des points de la scène très éloignés.

Concernant les résultats obtenus pour une boîte complète, l'espace mémoire est très grand (187 Mo pour une définition de 128x128 texels pour les textures et 500 directions pour l'hémisphère). Néanmoins, le temps de rendu est indépendant de la complexité géométrique. Il dépend uniquement de la résolution des textures. Sur un AMD Athlon 1GHz, nous obtenons 15 FPS pour des textures de définition 128x128 et plus de 25 FPS pour des textures de définition 64x64. Si l'éclairement seul change, nous ne recalculons que la couleur des texels sur la base des directions les plus proches déjà calculées (stockées dans $ D_{i,j}$). Dans ce cas, le taux d'affichage est supérieur à 80 FPS pour une définition de 64x64 texels, et supérieur à 60 FPS pour une définition de 128x128.

Porquet Damien 2005-03-02