Sous-sections

Points de vue de référence

Répartition et acquisition

La disposition des points de vues de référence que nous avons choisie est similaire à celle utilisée dans les travaux de Pulli et al. [PCD+97] : ils sont répartis sur une sphère englobant le modèle. Néanmoins, nous avons choisi de répartir les points par subdivision régulière d'un octaèdre de base plutôt que créer le maillage à partir de points et d'une triangulation de Delaunay, et ce pour des raisons pratiques exposées en section 2.2.2.2.

La création de l'ensemble des points de vue se fait donc à partir d'un octaèdre unité (figure 2.1(a)) que nous subdivisons un nombre fixé de fois jusqu'à atteindre le nombre de points de vue de référence que nous souhaitons. La figure 2.1(b) illustre le principe de la subdivision : chaque étape de récursion crée le nouveau maillage raffiné de la sphère en subdivisant en quatre les triangles du maillage de base et en projetant les points ajoutés sur la surface de la sphère unité. Dans l'exemple, nous obtenons un maillage composé de 32 faces et de 18 sommets à partir des 8 faces et des 6 sommets de l'octaèdre de base. La figure 2.1(c) montre un maillage sphérique de 128 points obtenu avec notre méthode.

Figure 2.1: Répartition des points de vue sur la sphère.
[Au départ, la sphère englobant l'objet est approximée par un octaèdre.]\includegraphics[%
width=1.0\columnwidth,
height=3.5cm,
keepaspectratio]{eps/exp-octaedre0.eps}[A chaque pas de récursion, les faces sont subdivisées en 4.]\includegraphics[%
width=1.0\columnwidth,
height=3.5cm,
keepaspectratio]{eps/exp-octaedre1.eps}[Maillage de 128 points de vue de référence obtenu avec cette méthode]\includegraphics[%
width=0.50\columnwidth,
height=3.5cm,
keepaspectratio]{eps/exp-reseau-pv.eps}

A partir des directions données par les sommets du maillage de la sphère, nous générons autant de caméras de référénce dont les axes optiques passent par le centre de la scène et dont les plans de projection sont tangeants à la sphère englobante de l'objet. La direction verticale de la caméra est quelconque. Finalement, nous effectuons le rendu conventionnel de l'objet 3D selon chaque point de vue de référence et nous stockons les images obtenues dans la carte graphique, sous forme de textures.


Recherche des meilleurs points de vue

Lors du rendu, le choix des images de référence à mélanger est très simple : il s'agit des images issues des trois points de vue de référence dont les axes optiques sont les plus proches (angulairement) de celui du point de vue virtuel. Pour cela, la caméra virtuelle associée au point de vue à reconstruire doit, comme les points de vue de référence, être dirigée vers le centre de la scène. Pour trouver ses trois plus proches points de vue, il suffit alors de trouver l'unique face du maillage de la sphère qui intersecte l'axe optique de la caméra virtuelle.


Tableau: Recherche en $ \log(n)$ des trois meilleurs points de vue de référence. $ k$ = niveau de récursion (profondeur de l'arbre)
k nb. de faces nb. de tests
0 8 8
1 32 12
2 128 16
3 512 20
4 2048 24
k $ 2.4^{k+1}$ $ 4.k+8$


Au lieu de tester l'intersection de l'axe optique avec toutes les faces du maillage de la sphère, nous effectuons le calcul d'intersection en choisissant les faces stockées dans les noeuds de l'arbre de récursion créé lors de la subdivision de l'octaèdre, et ce, jusqu'à arriver sur une face terminale (une feuille de l'arbre). Ainsi, la détermination des trois plus proches point de vues s'effectue avec un nombre de tests de l'ordre de $ \log(n)$ au lieu de $ n$, avec $ n$ le nombre de faces de la sphère (cf. figure 2.1).

Schéma de pondération

La composition des images de référence s'effectue avec une pondération identique sur tous les pixels. Pour calculer la contribution de chaque point de vue à l'image finale, nous nous basons sur les coordonnées barycentriques de l'intersection entre la direction de vision et la face du maillage de la sphère, calculées durant l'étape précédente (cf. figure 2.2).

Figure 2.2: Calcul de la contribution des points de vue de référence
\includegraphics[%
width=1.0\columnwidth,
height=4.5cm,
keepaspectratio]{eps/exp-ponderation-ptvue.eps}

Ainsi, pour chaque pixel $ c$ de l'image, on a : $ c=i.c_{0}+j.c_{1}+k.c_{2}$ , avec $ (i,j,k)$ les coordonnées barycentriques de l'intersection et $ c_{0}$ , $ c_{1}$ et $ c_{2}$ les pixels issus respectivement des images de référence $ I_{0}$ , $ I_{1}$ et $ I_{2}$.

Référentiel de mélange

Afin de mélanger les pixels des trois images de référence, nous devons disposer d'un référentiel 2D au sein des images car celles-ci ont été obtenues avec une caméra orientée aléatoirement (cf. figure 2.3).

Figure 2.3: Exemples d'images de référence obtenues avec notre méthode
\includegraphics[%
width=1.0\columnwidth,
height=3.5cm,
keepaspectratio]{eps/exp-pv0.eps}\includegraphics[%
width=1.0\columnwidth,
height=3.5cm,
keepaspectratio]{eps/exp-pv1.eps}\includegraphics[%
width=1.0\columnwidth,
height=3.5cm,
keepaspectratio]{eps/exp-pv2.eps}\includegraphics[%
width=1.0\columnwidth,
height=3.5cm,
keepaspectratio]{eps/exp-pv3.eps}

Ce référentiel est obtenu directement à partir du maillage englobant de la scène (figure 2.4(a)) pour lequel on associe à chaque image de référence ses coordonnées 2D projetées sur chaque point de vue de référence (figure 2.4(b)).

Figure 2.4: Référentiel des images de référence
[Maillage utilisé comme référentiel pour le mélange]\includegraphics[%
width=0.25\columnwidth,
keepaspectratio]{eps/exp-maillage-englobant.eps}[Calcul du référentiel par projection du maillage simplifié sur le point de vue de référence.]\includegraphics[%
width=0.70\columnwidth,
keepaspectratio]{eps/exp-referentiel.eps}

En pratique, plutôt que de stocker ces coordonnées de texture pour chaque point de vue, nous les recalculons lors du rendu (section suivante). Ainsi, les seules informations que nous stockons en chaque point de vue de référence sont sa direction, l'image de la scène (stockée dans une texture) et la matrice de transformation de la caméra.

Porquet Damien 2005-03-02