Sous-sections

Rendu

La rendu s'effectue en affichant directement le modèle simplifié, tout l'algorithme étant implanté dans le pixel shader qui calcule la couleur et la profondeur de chacun des points affichés en une seule passe.

Figure 4.10: Principe du placage de géométrie sur le modèle simplifié.
[Calcul du meilleur point de vue.]\includegraphics[%
width=0.50\columnwidth,
keepaspectratio]{eps/i3evis-fig5.eps}[Calcul de l'auto-ombrage.]\includegraphics[%
width=0.50\columnwidth,
keepaspectratio]{eps/i3evis-fig6.eps}

La figure 4.10(a) illustre l'algorithme : $ P$ représente un point 3D de la surface du modèle simplifié qui se projete sur le pixel $ O$ de l'écran de la caméra virtuelle. $ P$ est une approximation du point réel de la surface du modèle complexe, $ P'$. Pour trouver le meilleur point 3D stocké dans les points de vue de référence ($ V_{1}$ et $ V_{2}$ sur la figure), nous projetons $ P$ sur les plans de projection des caméras virtuelles. Nous obtenons les points 2D $ O_{1}$ et $ O_{2}$ . Chacun de ces points correspond, par rétroprojection, à un point 3D dans l'espace de la scène : $ P_{1}$ et $ P_{2}$ respectivement. Parmi ces points, celui qui approche le mieux $ P'$ est celui pour lequel la distance $ P_{i}/P'$ est la plus petite : $ P_{2}$ sur la figure. Finalement, nous assimilons $ P'$ à $ P_{2}$ c'est à dire que nous calculons la couleur du pixel $ O$ avec les informations de couleur, normale et profondeur du point $ O_{2}$ .

Calcul de l'auto-ombrage

Pour calculer l'auto-ombrage, nous avons utilisé la méthode de Williams[Wil78]. Le principe est de déterminer si un point affiché est ou non dans l'ombre en comparant sa distance par rapport à la source de lumière avec la distance stockée dans le tampon de profondeur de la scène vue selon la position de la lumière.

Ceci nécessite d'effectuer le rendu du modèle simplifié à deux reprises : une selon la position de la lumière et une selon la position de la caméra.

La figure 4.10(b) présente l'algorithme. L'étape de calcul du meilleur point de vue pour $ P$ a donné le point $ P_{2}$. Nous le projetons sur le plan de la caméra associée à la lumière : on obtient le point 2D $ O_{L}$. Nous rétroprojetons $ O_{L}$ dans l'espace de la scène à l'aide du tampon de profondeur de la caméra de la lumière, ce qui nous donne le point $ P_{L}$ dans l'espace de la scène. Ensuite, nous comparons la distance $ L/P_{2}$ à la distance $ L/P_{L}$ . Si la différence de profondeur est supérieure à une petite valeur fixée, nous considérons qu'une partie du relief cache le point $ P_{2}$ de $ L$ (la lumière). C'est le cas dans notre exemple : $ P_{2}$ (et donc $ P$) est dans l'ombre.

Porquet Damien 2005-03-02