Cours Mayar et 3DS Max : les ombres et reflets d’un objet virtuel sur une scène réelle
![Cours Mayar et 3DS Max : les ombres et reflets d’un objet virtuel sur une scène réelle](/images/remos_downloads/Cours3DSMAX-id6085.6085.pdf_thumb_prev.jpg)
Tutoriaux
Les fichiers utilisés dans les tutoriauxpeuventêtre téléchargésà l’adresse http Pour chaque tutoriel, nous indiquons la liste des logiciels et version que nous avons utilisés pour les réaliser, les chapitre du livre auxquels ils se rapportent et les fichiers concernés.
Le lecteur doit être conscient qu’il est difficile de proposer des tutoriaux conformes à toutes les versionsde logiciels et systèmes d’exploitationsutilisés, et le prionsde nous excuser par avance pour les éventuelles adaptations qu’il devra peut-être apporter en fonction de sa configurationpersonnelle. D’autre part, les tutoriaux 1, 2 et 3 concernent des fonctionalités particulières de logiciels de taille plus importante (3ds max et Maya), dont nous supposons que le lecteur est déjà familiarisé avec l’interface.
172
Tutoriel 1 : Cohérence perspectiviste et photométrique – 3ds maxr, Mayar
Ce tutoriel : 1. permet de mieux se rendre compte de la difficultéd’obtenir une perspective cohérente entre scènes réelle et virtuelle, 2. décrit comment générer sous Mayar et 3ds maxr les ombres et reflets d’un objet virtuel sur une scène réelle. | |
Logiciel(s) utilisé(s) | 3ds max 5, Maya 6.0, Maya PLE |
Chapitre(s) concerné(s) | 3,6,7 ![]() |
Fichiers | tutoriel_1/ |
Image d’arrière plan | |
etape_2.{max|mb|mp} | Résultat de l’étape 2 |
etape_3.{max|mb|mp} | Résultat de l’étape 3 |
etape_4.{max|mb|mp} | Résultat de l’étape 4 |
etape_5.{max|mb|mp} ![]() | Résultat de l’étape 5 |
Étape 1 : Création d’une caméra avec image d’arrière-plan
Cette premièreétape a pourobjectifde créerune nouvellecaméra,avec pourarrièreplan l’image .
Sous Maya 6.0 et Maya PLE :
1. créer une nouvelle caméra : Create > Cameras > Camera,
2. dans l’éditeur d’attributs (Window > Attribute Editors), sélectionner l’onglet cameraShape1,
3. dans la rubrique Environment, cliquer sur le bouton Create,
4. cliquer sur le petit dossier à droite du champ Image Name,
5. ouvrir l’image ,
6. pour se mettre en vue caméra : sélectionner une vue et cliquer sur Panels > Perspective > camera1. L’image doit apparaître en arrière-plan.
Sous 3ds max :
![](/images/remos_downloads/detail/60/Cours3DSMAX-id6085.6085.pdf-036.jpg)
1. créer une nouvelle caméra : Créer > Caméras > Caméra libre,
2. aller dans le menu Rendu > Environnement ,
3. cliquer sur le bouton Aucun, puis deux fois sur le type Bitmap,
4. ouvrir l’image ,
5. cliquer en haut à gauche d’une vue sur le bouton droit de la souris, puis sélectionner Vues > Caméra01,
6. aller dans le menu Vues > Arrière-plan fenêtre,
7. cocher les cases Utiliser arrière-plan environnement et Afficher arrière-plan, puis valider. L’image doit apparaître en arrière-plan de la vue.
Étape 2 : Alignement des caméras réelle et virtuelle
Insérer un cube dans la scène, de manière à ce qu’il apparaisse dans le champ de vision de la caméra. En vue caméra, la perspective du cube n’a pour le moment aucune raison de correspondre à la perspective réelle de la scène. Pour que les deux perspectives soient cohérentes, il est nécessaire de déplacer et d’incliner la caméra par rapport à la grille de manière à ce qu’elle corresponde au mieux à sa configuration réelle au moment de la prise de vue.
Dans ce tutoriel, nous n’obtiendrons qu’un alignement approximatif des perspectives réelle et virtuelle. L’idée est de comparer l’image de la grille avec celle du sol carrelé, et d’ajuster manuellement la position et l’orientation de la caméra, jusqu’à obtenir deux images qui coïncident. Pour limiter l’espace de recherche, on peut utiliser une connaissance approximative des conditions de tournage : la caméra est à une certaine hauteur du sol, et inclinée vers le bas. On peut donc dans un premier temps faire varier uniquement ces deux paramètres : hauteur de la caméra et inclinaison (Fig. 9.1),
FIG. 9.1 – Alignement des caméras réelle et virtuelle : une connaissance approximative des conditions de tournage indique que la caméra doit être placée au-dessus du sol, et légèrement inclinée vers le bas.
![](/images/remos_downloads/detail/60/Cours3DSMAX-id6085.6085.pdf-037.jpg)
puis lorsqu’on est proche de l’alignement, faire légèrement varier la rotation autour de l’axe vertical de la caméra (mouvements panoramiques).
La figure 9.2 donne un exemple de résultat. On peut constater que l’alignement n’est pas parfait : cela est principalement dû au fait qu’en plus de la position et de l’orientation des caméras réelle et virtuelle, il faudrait faire coïncider leurs paramètres intrinsèques. Dans cet exemple, nous n’avons pas cherché à modifier ces paramètres et nous sommes contentés des valeurs attribuées par défaut lors de la création d’une nouvelle caméra.
Étape 3 : Reconstruction des surfaces planes de la scène
Maintenant que la grille est alignée avec le sol de l’image réelle, il est très facile de définir un plan horizontal coïncidant avec le sol réel : il suffit de créer un nouveau plan, et de ramener un des coins de ce plan au niveau du coin de la pièce visible de l’image (Fig. 9.3, gauche). Pour les plans verticaux, on insère de même deux nouveaux plans auxquels on fait subir des rotations de 90? autour des axes correspondant à la base des deux murs. Cependant, après avoir fair subir ces rotations, il faut penser à relever les plans de manière à ce que leur base soit exactement sur la grille. Une fois que les plans sont bien inclinés et relevés sur la grille, il suffit de les déplacer sur le plan horizontal jusqu’à ce que leur base coïncide avec les bases visibles dans l’image (Fig. 9.3, droite).
Étape 4 : Insérer une sphère et une source lumineuse
Insérer une sphère et une source lumineuse, de manière à ce que la sphère soit visible dans l’image et posée sur le plan, et que son ombre se projète entre la sphère et la caméra (Fig. 9.4).
FIG. 9.2 – Alignement des caméras obtenu par tâtonnement : les perspectives du cube et de la grille correspondent à peu près à celle de la scène réelle.
FIG. 9.3 – Ajout d’un plan correspondant au sol de la pièce, puis de deux autres plans correspondant aux murs.
FIG. 9.4 – Ajout d’une sphère et d’une source lumineuse dans la scène.
Sous Maya 6.0 et Maya PLE :
Choisir une lumière de type point light. Dans l’éditeur d’attribut, choisir l’onglet pointLightShape1 et dans la rubrique Shadows et la sous-rubrique Raytrace Shadow Attributes, cocher la case Use Ray Trace Shadows.
Sous 3ds max :
![](/images/remos_downloads/detail/60/Cours3DSMAX-id6085.6085.pdf-038.jpg)
Choisir une lumière omnidirectionnelle. Dans la liste des lumières (Outils > Liste de lumières ), cocher la case Ombres dans la ligne correspondantà la lumière créée.
Étape 5 : Rendre les plans invisibles mais récepteurs d’ombres et de reflets
Un matériau particulier est disponible sous Maya et 3ds max, qui permet de rendre invisibles les objets auxquel il est affecté, tout en restant recepteurs d’ombres et de reflets. Nous utilisons ce matériau pour les trois plans définis précédemment.
Sous Maya 6.0 et Maya PLE :
1. sélectionner le plan,
2. dans la fenêtrede l’Hypershade (Window > Rendering editors > Hypershade), sélectionner la texture useBackground,
3. cliquer sur le bouton droit sans le relâcher, puis sur l’action Assign Material To Selection.
Pour modifier l’opacité de l’ombre et l’intensité de la réflexion :
1. sélectionner le plan et dans l’éditeur d’attributs, aller sur l’onglet UseBackground1,
2. les coefficients de réflexivité(Reflectivity)et d’ombrage(Shadow Mask) peuvent être modifiés dans la rubrique Use Background Attributes. Choisir par exemple les valeurs 0.9 pour la réflexion et 0.5 pour les ombres.
Sous 3ds max :
![](/images/remos_downloads/detail/60/Cours3DSMAX-id6085.6085.pdf-042.jpg)
1. ouvrir l’éditeur de matériaux,
2. sélectionner un matériau non défini et cliquer sur le bouton Standard,
3. choisir le matériau Mat/ombre et valider,
4. pour pouvoir obtenir des reflets en plus des ombres, ajouter une texture réfléchissante en cliquant sur le bouton Aucun dans la rubrique Réflexion (choisir la texture Lancer de rayons),
5. dans la rubrique Arrière-plan des attributs de la texture Lancer de rayons qui vient d’être créée, cocher le rond devant le bouton Aucun,
6. attribuer le matériau aux trois plans en le faisant glisser vers ces plans.
Pour modifier l’opacité de l’ombre et l’intensité de la réflexion :
1. dans l’éditeur de matériaux, sélectionner le matériau qui vient d’être créé et latexture Mat/ombre (01 - Par défaut dans le menu déroulant),
2. la brillance de l’ombre et la quantité de réflexion sont les paramètres à modifier : choisir par exemple 0.5 pour la brillance de l’ombre et 90. pour la quantité de réflexion.
Étape 6 : Faire un rendu
Avant de faire un rendu, quelques opérations doivent être réalisées.
![](/images/remos_downloads/detail/60/Cours3DSMAX-id6085.6085.pdf-117.jpg)
Sous Maya 6.0 et Maya PLE :
1. ouvrir la fenêtre d’édition des paramètres de rendu (Window > Rendering Editors > Render Globals),
2. dans les propriétés de rendu (Render Global Settings), choisir l’onglet Maya Software,
3. dans la rubrique Raytracing Quality, cocher l’option Raytracing.
Sous 3ds max :
1. afin d’éviter que les plans eux-mêmes ne se reflètent, sélectionner chaque plan,cliquer sur le bouton droit de la souris et accéder au menu Propriétés ,
2. décocher la case Visible pour la réflexion/réfraction.
La figure (Fig. 9.5) montre un exemple de rendu obtenu sous 3ds max.
FIG. 9.5 – Exemple de rendu final sous 3ds max.
180
![](/images/remos_downloads/detail/60/Cours3DSMAX-id6085.6085.pdf-119.jpg)
Tutoriel 2 : Positionnement basé modèle – 3ds maxr
Dans ce tutoriel, nous illustrons la technique du positionnement basé modèle à l’aide du détecteur de caméra de 3D Studio Max. Pour ce type de tracking, il est nécessaire de prendre des mesures lors du tournage et de disposer d’un minimum de 6 points de repère. | |
Logiciel(s) utilisé(s) | 3ds max 7 |
Chapitre(s) concerné(s) | 3,4 |
Fichiers | tutoriel_2/ |
Descripteur de la séquence à traiter | |
Séquence à traiter | |
Objets à intégrer dans la scène ![]() | |
Vidéo montrant le résultat |
Étape 1 : Préparation du projet
1. Ouvrir 3D Studio Max
2. Modifier le système d’unité : Customize > Units Setup
3. Dans Display Unit Scale, choisir Metric > Centimeters puis OK.
Étape 2 : Affichage de la vidéo en arrière plan du rendu et dans la fenêtre Perspective
1. Aller dans Rendering > Environment,
2. Cliquer sur None dans Environment Map et choisir Bitmap puis OK.
3. Dans la boîte de dialogue Select Bitmap Image File sélectionner le fichier , puis cliquer sur OK.
4. Fermer la fenêtre Environment.
5. Aller dans Views > ViewportBackground puis cocherUse EnvironmentBackground et Display Background puis OK.
Étape 3 : Configurer l’animation
Pour modifier la cadence et la durée de l’animation :
![](/images/remos_downloads/detail/60/Cours3DSMAX-id6085.6085.pdf-153.jpg)
1. Cliquer sur l’icône Time Configuration en bas à droite de l’écran,
2. Dans la boîte de dialogue Time Configuration, dans Frame Rate, choisir Custom et entrer 25 dans le champ FPS.
3. Dans Animation entrer 249 dans le champ End Time puis OK.
Étape 4 : Créer les points caméra dans la scène 3D
Nous allons à présent définir les points 3D dont les homologues 2D seront suivis dans toute la séquence. Ces points correspondentà des petits repères blancs positionnés dans la scène, dont les coordonnées 3D ont été mesurées à la main (Fig. 9.6).
1. Aller dans le Panneau de Commandes Create à droite de l’écran.
2. Cliquer sur Helpers et choisir Camera Match (Fig. 9.7).
3. Cliquer sur CamPoint.
4. Dans le panneau déroulant Keyboard Entry créer 6 CamPoints en entrant les valeurs du tableau ci-dessous :
Points | X ![]() | Y | Z |
CamPoint1 | 7 | ||
CamPoint2 | 19,5 | 7 ![]() | |
CamPoint3 | 8,5 | ||
CamPoint4 | 19,5 | 8,5 | |
CamPoint5 | ![]() | 22 | |
CamPoint6 | 19,5 | 22 |
5. Enregistrer le projet : File > Save as
FIG. 9.6 – Position des 6 repères de tracking (échelle en cm).
Étape 5 : Détection du mouvement des repères de tracking.
1. Dans le Panneau de Commandes Utilities (Fig. 9.8), cliquer sur More et dans la fenêtre Utilities sélectionner Camera Tracker.
![](/images/remos_downloads/detail/60/Cours3DSMAX-id6085.6085.pdf-158.jpg)
2. Dans le panneau déroulant Movie (Fig. 9.9) cliquer sur None à côté de Movie file et sélectionner le fichier puis OK.
3. Cocher Fade Display. Avec cette option, l’arrière plan est plus clair mais les gizmos de détection seront plus simple à positionner.
4. Dans le panneau déroulant Motion Trackers créer un nouveau détecteur en cliquant sur New Tracker. Dans Subpixel Detector, choisir 1/4.
5. Positionner le gizmo de détection autourdu repère de tracking N?1 (sur la tête du personnage de droite). La fenêtre de limitation (fenêtre intérieure) doit entourer le repère au plus proche et la fenêtre de recherche (fenêtre extérieure) doit faire au moins 2 fois la taille de la fenêtre de limitation (Fig. 9.10). Pour plus de précision, les touches I et O permettent de zoomer et de dézoomer.
6. Affecter le tracker qui vient d’être créé au point caméra CamPoint1. Dans Tracker Setup, cliquer sur None sous Scene object et selectionner le point caméra CamPoint1 dans la fenêtre Perspective (Fig. 9.6).
7. Créer, positionner et affecter 5 autres trackers (Fig. 9.11) en répétant les troisdernières opérations.
Étape 6 : Suivi de cible
Par sécurité, il est préférable d’analyser le déplacement des repères les uns après les autres. Pour cela :
1. Cliquer sur None sous la liste des trackers dans le panneau déroulant Motion Trackers.
FIG. 9.7 – L’assistant Camera Match.
2. Sélectionner et activer le tracker N?1 (une petite croix indique son activation en début de ligne).
![](/images/remos_downloads/detail/60/Cours3DSMAX-id6085.6085.pdf-159.jpg)
3. Dans le panneau déroulant Movie Stepper, activer la fonction Feature tracking en cliquant sur le bouton Off. Le bouton devient rouge et indique On, ce qui signifie que le suivi de cible est actif.
4. Vérifier que la zone Movie frame indique bien 0 et cliquer sur le bouton >> pour détecter le mouvement jusqu’à la fin de l’animation. A noter qu’il est aussi possible de détecter le mouvement image par image ou par série de 10 images.
5. Désactiver Feature tracking et rembobiner l’animation avec le bouton <<
6. À présent, sélectionner et activer le tracker suivant. Lancer l’analyse en répétantla procédure décrite précédemment pour les autres trackers.
Pour le tracker N?4 une erreur de détection se produit entre les images 117 et 131 car le repère de tracking croise un reflet. Pour corriger cette erreur il faut positionner manuellement le gizmo de détection autour du repère. Pour cela :
1. Sélectionner et activer le tracker N?4.
2. Aller à l’image 116 dans le Movie Stepper et vérifier que le Feature tracking est bien Off et cliquer sur Clear tracking to end pour effacer le tracking jusqu’à la fin.
3. Avancer image par image avec le bouton > et recadrer le gizmo autour du repère jusqu’à l’image 131.
4. Continuer ensuite l’analyse jusqu’à la fin en activant le Feature tracking et en cliquant sur >> (Fig. 9.12).
5. Désactiver Feature tracking et fermer la fenêtre de détection.
![](/images/remos_downloads/detail/60/Cours3DSMAX-id6085.6085.pdf-162.jpg)
FIG. 9.8 – Le panneau de commandes Utilities.
FIG. 9.9 – Le panneau déroulant Movie.
Il est possible d’enregistrer les positions et les trajectoires des gizmos de détection (fichier *.mot) en cliquant sur Save as dans le panneau déroulant Movie.
Étape 7 : Calcul des mouvements de caméra
1. Créer une caméra libre : Dans le panneau de commandes Create cliquer sur Cameras puis sur Free, puis cliquer n’importe où dans la fenêtre Perspective pour positionner la caméra.
2. Entrer 41 mm dans le champ Lens du panneau déroulant Parameters. Cette valeur correspond à la focale de l’objectif utilisé pour filmer cette séquence.
3. Retourner dans le panneau de commande Utility et dans le panneau déroulant Match Move, cliquer sur None sous Camera et sélectionner la caméra qui vient d’être créée (Fig. 9.13).
4. Même si nous avons une idée de la valeur de la distance focale, celle-ci sera réestimée dans chaque image pour permettre une meilleure précision du recalage :
FIG. 9.10 – Détail du positionnement d’un gizmo de détection.
la case FOV (dans Match) reste donc cochée. Vérifier que Frame count indique bien 250 et cliquer sur Match Move pour lancer le calcul des points de vue basé modèle.
5. Pour visualiser la scène à travers la caméra qui vient d’être créée, faire un boutondroit sur Perspective dans la vue Perspective, et dans le menu choisir Views > Camera01.
![](/images/remos_downloads/detail/60/Cours3DSMAX-id6085.6085.pdf-204.jpg)
Étape 8 : Lissage du mouvement (facultatif)
Lorsque cette étape est terminée, le mouvement de la caméra 3D est aligné sur celui de la caméra réelle. Il se peut que le mouvement soit trop chaotique, si tel est le cas on pourra utiliser le panneau déroulant Move smoothing afin de lisser le déplacement en Rotation et en Position. Entrer la valeur 2,0 dans Smooth amount, cocher Re-match after smooth et cliquer sur Smooth.
Étape 9 : Intégrer des éléments 3D
Il est maintenant possible d’intégrer des éléments 3D dans le champ de la caméra ou de fusionner le fichier dans la scène :
1. File > Merge et sélectionner le fichier .
FIG. 9.11 – Le panneau déroulant Motion Trackers.
2. Dans la boîte de dialogue Merge, cliquer sur All pour sélectionnertous les objets de la scène, puis cliquer sur OK.
3. Dans la boîte de dialogue Merge : Raytrace Global Tracks sélectionner Use the Merged Tracks et cliquer sur OK.
Pour terminer cet exercice, effectuer un rendu ou exécuter le fichier pour visualiser le résultat obtenu (Fig. 9.14).
FIG. 9.12 – Trajet du gizmo après analyse. Les carrés verts correspondentaux positions entrées manuellement dans la zone d’erreur.
FIG. 9.13 – Le panneau déroulant Match Move.
FIG. 9.14 – Rendu d’une image de l’animation une fois le fichier fusionné.
![](/images/remos_downloads/detail/60/Cours3DSMAX-id6085.6085.pdf-205.jpg)
190
Tutoriel 3 : Positionnement basé image – Maya Liver
Ce tutoriel présente le positionnement basé image à l’aide du logiciel Maya Liver. En particulier sont étudiés : 1. le suivi supervisé de cibles, 2. le calcul des points de vue de la caméra et de lastructure de la scène 3. le positionnement de la grille horizontale et l’insertion d’un objet. | |
Logiciel(s) utilisé(s) | Maya Unlimited 6.0 |
Chapitre(s) concerné(s) | 3, 5 |
Fichiers ![]() | tutoriel_3/ |
sequence/STAN.*.GIF | Séquence d’images à traiter (place Stanislas) |
Résultat de l’étape 2 | |
Résultat de l’étape 4 | |
Résultat de l’étape 5 |
Étape 1 : Chargement du Plug-in Live et ouverture d’une séquence d’images
Maya Live est un Plug-in de Maya Unlimited, qui n’est pas chargé par défaut. Pour le charger :
1. aller dans Window > Settings/Preferences > Plug-in Manager,
2. cocher la case située devant , ou (suivantle système d’exploitation utilisé),
3. cocher les cases loaded et, pour que Live soit automatiquement chargé aux prochaines ouvertures de Maya, auto load,
![](/images/remos_downloads/detail/60/Cours3DSMAX-id6085.6085.pdf-207.jpg)
4. fermer le Plug-in Manager et dans le menu déroulant situé en haut à gauche de la fenêtre principale, sélectionner Live au lieu de Modeling,
5. aller dans Scene > New Matchmove,
6. cliquer sur le bouton Browse à droite de la zone Full Res Image,
7. charger la séquence : sélectionner le fichier et cliquersur Open.
Remarque : au cours de votre travail sur la séquence, il peut arriver que les images de fond disparaissent de façon inattendue, décocher alors l’option use cache pour les faire réapparaître.
Étape 2 : Suivi supervisé des cibles
Le suivi d’indices sous Maya Live repose sur la procédure de suivi par corrélation décrite au chapitre 4, qui doit être initialisée et supervisée par l’utilisateur. Pour suivre une cible :
1. sélectionner le menu Track au lieu de Setup,
2. aller dans l’image où le suivi doit commencer,
3. cliquer sur le bouton présentant une cible verte avec une flèche rouge au milieu,
4. avec le bouton du milieu, cliquer dans l’image à l’endroit où se trouve le point à suivre : apparaissent alors la fenêtre de corrélation et la fenêtre de recherche (cf. section 4.3, page 70 pour une explication du rôle de ces deux fenêtres),
![](/images/remos_downloads/detail/60/Cours3DSMAX-id6085.6085.pdf-208.jpg)
5. retailler les fenêtres en suivant les conseils du paragraphe 4.3.2, page 71,
6. choisir le sens de suivi : le suivi peut se faire vers l’avant, vers l’arrière ou dansles deux sens, suivant l’indication donnée dans le menu Tracking Direction,
7. aller dans les options de suivi (cocher le rond devant Options) : il est possible d’autoriserune fenêtre de corrélation à se déformeren rotation ou en taille durant le suivi, avec plus ou moins de facilité; donnerdes valeurs élevées à ces déformations si les changements de perspective sont importants dans la séquence (dans la séquence de la place Stanislas, la valeur 0.5 convient à peu près pour les deux paramètres),
8. retourner dans le menu Track et lancer le suivi en cliquant sur le bouton Start Track.
Suivre d’autres points en utilisant la même procédure. Choisir une vingtaine des points, biens répartis dans la scène (sur les bâtiments, le sol et la statue, cf. Fig. 9.15). Un résumé de la qualité du suivi est présenté de manière graphique : pour chaque point suivi, une barre de couleurs présente l’évolution du score de suivi obtenu dans toutes les images de la séquence (Fig. 9.15). Le score de suivi est la moyenne des différences entre les pixels de la cible définie et ceux de la cible suivie. La couleurverte indique que le point a été bien suivi dans l’image, la couleur orange qu’il peut y avoir un mauvais suivi et la couleur rouge que le suivi est définitivement mauvais (cette dernière couleur apparaît lorsque le score de suivi est supérieur au seuil Failure Threshold défini dans la fenêtre des options de suivi). Le bleu indique que la cible a été définie à la main dans l’image où la couleur apparaît.
FIG. 9.15 – La fenêtre de suivi supervisé des cibles : choisir des cibles bien réparties dans la scène.
Étape 3 : Contraindre les paramètres de la caméra
Une fois que suffisamment de points ont été correctementsuivis, le calcul des points de vue et de la structure de la scène peut être lancé. Avant cela, il peut être utile de contraindre certains paramètres de la caméra : la focale peut être constante ou variable, connue ou inconnue; de même, si la caméra est placée sur un rail de traveling par exemple, sa translation n’a plus qu’un seul degré de liberté. Pour contraindre ces paramètres :
1. sélectionner le menu Solve au lieu de Track,
2. cliquer sur l’option Camera (Fig. 9.16),
3. la focale peut être inconnue(Unconstrained, pas de valeurdans la premièrezone de texte, ni dans la deuxième), connue (Fixed, saisir la valeur dans la première zone de texte) ou connue approximativement (Constrained, saisir la valeur approximative dans la première zone de texte, et l’imprécision estimée – erreur possible sur la valeur de la focale – dans la deuxième zone de texte, précédée par le symbole ±). Elle peut aussi être fixe (cocher la case Static) ou variable (décocher la case). Dans la séquence de cet exercice, la caméra n’opère aucun zoom mais la distance focale est non connue : cocher la case Static et garder l’option Unconstrained;
![](/images/remos_downloads/detail/60/Cours3DSMAX-id6085.6085.pdf-210.jpg)
4. les paramètres de translation et de rotation peuvent être contraints de la même façon. Garder les options par défaut : Unconstrained et Static non coché, puisque le mouvement de la caméra est complètement libre dans la séquence.
FIG. 9.16 – Contraindre les paramètres de la caméra.
Étape 4 : Calcul des points de vue de la camera et de la structure de la scène
Pour obtenir les paramètres de la caméra dans toute la séquence :
1. cliquer sur l’option Solve au-dessus de Camera (Fig. 9.17),
2. cliquer sur le bouton Solve en-dessous du titre Root Frames : pour une résolution complète, ou successivement sur chacun des bouton à droite de celui-ci pour une résolution pas-à-pas (ce mode de résolution est préférable car il permet d’identifier plus finement les problèmes).
FIG. 9.17 – La fenêtre de résolution du positionnement.
Sous Maya Live, la résolution basée image repose deux étapes principales :
1. une étape d’initialisation où les paramètres de la caméra et la structure de la scène sont calculés sur un nombre réduit d’images clés (Root frames),
2. une étape de propagationdes résultats sur les images intermédiaires et de convergence itérative de la solution globale.
Plus exactement, les actions déclenchées par chacun des cinq boutons proposés sont les suivantes :
![](/images/remos_downloads/detail/60/Cours3DSMAX-id6085.6085.pdf-211.jpg)
Start (obligatoire) : crée une estimation initiale à partir des images clés,
Continue (optionnel) : tente de trouver d’autres solutions à partir des images clés,
Refine (optionnel) : étape de raffinement itératif sur les images clés (le critère minimisé est l’erreur de reprojection définie en section 5.2, page 82).
Finish (obligatoire) : la solution est propagée à toutes les images de la séquence,
Register (optionnel) : recale la scène reconstruite en fonction des contraintes définies sur les points 3D (cf. étape suivante).
Étape 5 : Recalage de la grille et insertion d’un objet
Il est possible sous Maya Live de définir des contraintes sur des points 3D de la scène. Ces contraintes peuvent être de type Point (pour donner explicitement les coordonnées3D d’un point), Distance (pourimposerune distance entre deux points), Plane (pour indiquer que trois points au minimum sont sur un plan) ou Depth (distance de la caméra au point 3D). Ces contraintes peuvent être utilisées de deux manières :
1. pour contraindre la résolution : lorsqu’on clique sur le bouton Start ou Refine de la fenêtre de résolution, si des contraintes ont été définies, celles-ci sont intégrées dans la résolution de manière à réduire le nombre de paramètres à estimer;
2. pour recaler globalement la scène et les mouvements de caméra en effectuant desimples changements d’échelle et de repère de la solution trouvée; par exemple, si une contrainte de type plan est définie sur trois points, le repère de la scène sera translaté et tourné de manière à ce que la grille (plan horizontal) coïncide avec les trois points. Cela n’affecte en rien le résultat obtenu, mais cela permettra de positionner les objets virtuels plus facilement par la suite.
Si l’option Registration only est cochée pour une contrainte, celle-ci n’est prise en compte que lors de l’étape Register de la résolution, et n’a donc aucune influence sur le calcul de la solution (étapes Start et Refine).
Dans notre exemple, on peut définir des points du sol comme appartenant à un même plan. Pour cela :
![](/images/remos_downloads/detail/60/Cours3DSMAX-id6085.6085.pdf-212.jpg)
1. choisir la fenêtre Survey,
2. sélectionner les points 2D concernés (Fig. 9.18),
3. choisir le type de contrainte Plane,
4. cliquer sur le bouton Create,
5. cette contrainte sera utilisée pour recaler la grille uniquement, pas pour la résolution : on peut donc cocher la case Registration only pour être sûr qu’elle ne sera pas prise en compte si l’on tente une nouvelle résolution;
FIG. 9.18 – Recalage de la grille sur des points du sol.
6. retourner dans la fenêtre Solve et cliquer sur le bouton Register.
La grille correspond à présent avec le sol de la scène 3D. Grâce à cette grille, on peut facilement insérer des objets dans la scène, comme des cubes posés sur le sol (Fig. 9.19). On vérifie ensuite en faisant défiler la séquence, que les objets ajoutés semblent bien fixes par rapport à la scène lorsque la caméra bouge. Un rendu en arrière plan de la séquence (Batch render) peut alors être lancé.
FIG. 9.19 – Incrustation d’un cube sur le sol de la place Stanislas.
Tutoriel 4 : Positionnement basé image – Boujour
Ce tutoriel présente le positionnement basé image à l’aide du logiciel Boujour. En particulier sont étudiés : ![]() 1. la correction de la distorsion radiale, 2. le suivi automatique et supervisé de cibles, 3. le calcul des points de vue de la caméra et de lastructure de la scène, 4. le lissage de la trajectoire de la caméra, 5. le positionnement de la grille horizontale et l’insertion d’un objet. | |
Logiciel(s) utilisé(s) | Boujou Bullet 1, Boujou 3 |
Chapitre(s) concerné(s) | 3, 5, 6 |
Fichiers ![]() | tutoriel_4/ |
Image de grille pour la correction des distorsions | |
Grille à imprimer | |
jouets*.jpg | Séquence d’images à traiter |
Résultat après l’appariement automatique | |
Résultat après le suivi supervié | |
Résultat après le lissage de trajectoire | |
Exportation du dernier résultat en Maya 4+ | |
Exportation du dernier résultat en 3ds max (render aperture = 28.168) ![]() |
Étape 1 : Correction de la distorsion radiale
Boujou offre la possibilité de corriger la distorsion radiale éventuellement présente dans les images (cf. chapitre 3). Les séquences utilisées dans ce tutoriel ont été acquises à l’aide d’une webcam présentant une légère distorsion, que nous allons donc corriger. La correctionest basée sur le fait qu’en l’absence de distorsion dans l’image, les droites naturelles de la scène doivent effectivement apparaître droites dans l’image. L’outil proposé permet d’ajuster manuellement les paramètres de distorsion, jusqu’à réduire au maximum la courbure des droites présentes dans les images.
Cette opération peut se faire directement à partir de la séquence à traiter dans le cas où des droites naturelles y sont présentes. Toutefois, pour plus de précision, nous utilisons une image de grilleobtenue avec la même webcam que celle utilisée pour le tournage des séquences. Les opérations à suivre sont les suivantes :
1. aller dans le menu File > Import Sequence,
2. ouvrir l’image et valider deux fois avec les options par défaut,
3. aller dans le menu Actions > Assess Lens Distortion : cette fenêtre permet de tracer des droites dans l’image, et de les comparer avec les droites réellement obtenues en fonction des paramètres de distorsion,
4. en cliquant sur le bouton Add Calibration Line, tracer au moins quatre droites par-dessus des droites de l’image qui vous paraissent courbes (Fig.9.20, image
1),
5. changerle paramètre R de la distorsion et observerles effets sur l’image de fond: les images 2 et 3 de la figure 9.20 montrent par exemple les corrections obtenues pour (respectivement) R =0.3 et R =?0.3,
6. on constate que la différence entre les droites corrigées et les droites définies n’est pas symétrique : cela signifie que le centre de distorsion n’est pas au centre de l’image. Dans Boujou, on considère que le centre de distorsion est le point principal, ce qui est généralement faux mais constitue une approximation suffisante dans la plupart des cas. Pour décentrer le centre de distorsion, on modifie donc les coordonnées du point principal (sa position est définie par rapport à la taille horizontale et verticale de l’image). Nous avons obtenu une correction visuellement satisfaisante avec les valeurs R = 0.027, %X = 70 et %Y = 50 (Fig. 9.20, image 4); ces valeurs pourront être notées sur une feuille de papier ou conservées dans un fichier texte, car un nouveau projet doit être ouvert pour traiter une nouvelle séquence.
Étape 2 : Chargement de la séquence et définition de la caméra
Nous commençons par traiter la séquence pour laquelle la caméra subit un mouvementà six degrés de liberté. Il s’agit d’uneséquence de scène d’intérieur miniature, comportant des dinosaures en plastique et un clocher en bois. Pour charger cette séquence et saisir les paramètres de distorsion obtenus précédemment :
![](/images/remos_downloads/detail/60/Cours3DSMAX-id6085.6085.pdf-216.jpg)
1 2
3 4
FIG. 9.20 – Correction de la distortion radiale sous Boujou : réglage du coefficient de distorsion R et de la position du point principal pour que les droites apparaissent effectivement droites dans l’image.
1. ouvrir un nouveau projet : File > New (l’ancien projet peut être fermé),
2. aller dans le menu File > Import Sequence et charger le fichier ,
3. dans la même fenêtre, il est possible d’indiquer s’il s’agit d’un mouvement général de caméra (Move Type : Free Move) ou d’une rotation pure (Nodal Pan) : laisser Free Move pour cette séquence et valider;
4. Boujou Bullet (BB) : une fenêtre s’ouvre ensuite qui permet de donner des précisions sur les paramètres intrinsèques de la caméra (cf. chapitre 3); Boujou 3 (B3) : aller dans le menu Artifacts > Cameras;
5. dans les options sous l’onglet General, on trouve l’attribut Pixel Aspect qui correspond au rapport d’aspect, fixé à 1 par défaut; dans les options Advanced, on peut définir le point principal (fixé au centre de l’image par défaut) et le coefficient de distorsion : saisir les valeurs R =0.027, %X =70 et %Y =50 obtenues à l’étape précédente;
6. BB : retourner dans les options General;
B3 : valider, aller dans le menu Artifacts > Focal Length properties et cliquer sur Type;
![](/images/remos_downloads/detail/60/Cours3DSMAX-id6085.6085.pdf-218.jpg)
on peut alors indiquer notre connaissance de la distance focale. Trois (pour Boujou Bullet) ou cinq (pour Boujou 3) modes sont disponibles :
Variable unknown (B3) ou Variable (BB) : La focale est considérée comme variable (il y a des changements de zoom dans la séquence) mais non connue,
Variable initialised (B3) : la focale varie au cours de la séquence, mais on donne une valeur approximative de ce paramètre, qui sera utilisée comme valeur initiale dans la minimisation de l’erreur de reprojection (cf. chapitre 5),
Constant unknown (B3) ou Constant (BB) : la focale est constante mais non connue,
Constant initialised (B3) : la focale est constante et une valeur approximative peut être donnée,
User fixed (B3&BB) : la focale est constante et donnée par l’utilisateur.
Garder la valeur par défaut Constant (unknown) et valider;
7. on peut voir la séquence en cliquant sur le bouton Play Forwards.
Étape 3 : Détection et appariement automatique des points d’intérêt
La procédure automatique de détection/appariement des points d’intérêt décrite au chapitre 5 (section 5.3.2) est disponible sous Boujou. Pour la lancer sur toute la séquence, il suffit d’aller dans le menu Action > Track Features, puis de cliquer sur le bouton Start. Les croix rouges représentent les points détectés, les traits jaunes la trajectoire de ces points dans l’image (Fig. 9.21).
On constatequ’uncertain nombred’appariementssont incorrects(grandtraits jaunes n’ayant pas la même orientation que les appariements voisins). Ces appariements sont
![](/images/remos_downloads/detail/60/Cours3DSMAX-id6085.6085.pdf-219.jpg)
FIG. 9.21 – Appariement automatique de points d’intérêts avec Boujou. généralement obtenus sur des motifs répétitifs comme la texture du sol. Ils peuvent être supprimés en les sélectionnant, puis en cliquant sur le bouton droit de la souris puis Delete, mais il serait très fastidieux de tous les supprimer. Nous les conservons donc, en comptant sur la robustesse de l’algorithme de positionnement.
Étape 4 : Calcul des points de vue de la camera et de la structure de la scène
Les points de vue de la caméra et la structure de la scène peuvent maintenant être calculés en allant dans le menu Actions > Track Camera. Plusieurs minutes de calcul peuvent être nécessaires pour résoudre les étapes d’initialisation et d’ajustement de faisceau (cf. chapitre 5). Une fois le résultat obtenu, des critères 2D et 3D peuvent être utilisés pour juger de sa qualité.
Reprojection des points d’intérêt : dans le menu Views, décocher l’option Tracks et cocher les options Predictions et Errors. Les petits ronds affichés correspondent aux points reconstruits, projetés dans les images. Les points reprojetés dont l’homologue a été détecté dans l’image apparaissent en jaune, les points correspondant à des points détectés dans d’autres images en bleu. Pour les points jaunes, un segment liant le point reprojeté au point détecté est affiché en rouge.
Bien sûr, plus le positionnementest bon, plus les traits rouges doivent être petits;
Trajectoire de la caméra et structure de la scène : aller dans le menu Window > Toggle 3D mode (Boujou Bullet) ou Window > Set active view to 3D mode (Boujou 3). Les points reconstruits (mêmes significations des couleurs qu’en 2D) ainsi que la trajectoire de la caméra (en rouge) sont alors affichés en 3D. On peut tourner autour de la scène avec SHIFT+bouton gauche de la souris, ou faire des zooms avant ou arrière avec SHIFT+bouton droit. La figure 9.22 montre une vue d’ensemble de la scène reconstruite. La trajectoire de la caméra semble à peu près cohérente avec le mouvementayant réellement été appliqué à la caméra. Par contre, sur cette vue il est très difficile d’identifier des structures caractéristiques de la scène.
La figure 9.23 montre une “vue du dessus” de la scène reconstruite : on identifie à peu près les deux murs de la pièce miniature, ainsi qu’un amas de points au niveau du clocher. Par contre, un plan qui n’existe pas réellement dans la scène a été obtenu, comme une sorte d’avancée dans le mur de gauche.
Étape 5 : Suivi supervisé de cibles
La procédure de suivi par corrélation décrite au chapitre 4 (section 4.3) est aussi disponible sous Boujou. Comme très peu de points ont été appariés automatiquement sur le sol, nous allons l’utiliser pour en ajouter quelques-uns de manière supervisée. Cela devrait permettre d’améliorer la qualité du positionnement, ainsi que d’obtenir des points d’ancrage qui aideront à définir le plan horizontal de la scène. Les étapes à suivre sont les suivantes :
1. pour une meilleure visibilité, supprimer l’affichage du suivi automatique en décochant l’option View > Tracks,
FIG. 9.22 – Scène reconstruite et tarjectoire de caméra obtenues lors de la première résolution.
2. afficher l’image 0 et cliquer sur le menu Actions > New Target Track,
![](/images/remos_downloads/detail/60/Cours3DSMAX-id6085.6085.pdf-222.jpg)
3. cliquer sur le centre de la bille la plus proche du clocher (Fig. 9.24),
4. retailler la fenêtre de corrélation et la fenêtre de recherche à peu près comme indiqué en figure 9.24 (pour connaître la fonction de ces deux fenêtres, se reporter à la section 4.3 du chapitre 4),
5. aller à la fin de la séquence et cliquer sur le centre de la même bille, en agrandissant légèrement les deux fenêtres pour tenir compte de l’agrandissement obtenu dans l’image du fait du rapprochement de la caméra vers la scène,
6. cliquer sur la cible, bouton droit, Properties et sur l’onglet Ranges,
7. cliquer sur le chiffre 0 dans la colonne Start, puis sur le bouton Track : cela déclenche le suivi par corrélation de la cible entre les deux images “clés” où la cible a été définie (0 et 425),
8. le suivi échoue en cours de route, ce qui signifie que d’autres images clés doiventêtre définies,
9. définir la cible dans l’image 213 (par exemple),
10. dans la fenêtre Target Tracks, onglet Ranges, doivent apparaître maintenant deux lignes, une pour chaque portion de séquence entre les images clés : 0-213 et 213-425. Cliquer successivement sur chacune de ces lignes et sur le bouton Track pour lancer les suivi dans chaque portion,
11. lorsque la cible est suivie sur toute une portion, l’état tracked est indiqué dans la colonne Status, sinon les états untracked ou partially tracked sont affichés;
FIG. 9.23 – Scène reconstruite lors de la première résolution, “vue du dessus”.
![](/images/remos_downloads/detail/60/Cours3DSMAX-id6085.6085.pdf-251.jpg)
FIG. 9.24 – Exemplede cible pouvantêtre suivie parcorrélation,entouréeparsa fenêtre de corrélation et sa zone de recherche.
12. ajouter des images clés et lancer le suivi sur les sous-portions générées, jusqu’àce que toutes les sous-portions soient entièrement suivies,
13. répéter ces opérations avec d’autres cibles, comme par exemple celles qui sontindiquées en figure 9.25; des cibles comme les billes sont particulièrement faciles à suivre car elles ne changent pratiquement pas d’aspect lorsque la perspective est modifiée; par contre, des cibles de type coins (comme le coin du livre) sont déformées par les changements de perspective et nécessitent donc généralement d’introduire de nombreuses images clés; si une cible est hors champ ou occultée sur une portion de séquence, cocher la case Occluded sur cette portion;
Étape 6 : Nouveau positionnement
Une nouvelle résolution peut être effectuée en tenant compte des suivis de cibles que nous venons d’obtenir. Dans Actions > Track Camera, choisir l’option Complete, qui revient à recalculer complètement la solution (la solution existante aurait aussi pu être utilisée comme initialisation de la nouvelle résolution). La solution que nous obtenons semble à présent plus précise (Fig. 9.26) : le plan inexistant détecté précédemment n’apparaît plus, et les cibles suivies (qui apparaissent en rouge) semblent bien placée : la cible définie sur le clocher apparaît bien au sein du nuage de points représentant le clocher, et les deux billes suivies au pied du mur de droite apparaissent bien alignées avec la struture à peu près plane reconstruite. D’autre part, la trajectoire calculée semble toujours cohérente avec la trajectoire réelle de la caméra (Fig. 9.29,
FIG. 9.25 – Autres cibles pouvant être suivie manuellement.
FIG. 9.26 – Scène reconstruite lors de la deuxième résolution, et alignement de la grille avec des points du sol.
gauche).
Étape 7 : Recalage de la grille et insertion d’un objet
Pour terminer de valider la solution obtenue et se rendre compte de sa pertinence dans un contexte d’augmentation, il est possible dans Boujou d’insérer rapidement un objet virtuel (une coccinelle) dans la scène reconstruite. Initialement, l’objet sera inséré de manière arbitraire, car aucune contrainte n’a été définie sur les axes du repère de la scène. La grille d’insertion, qui représente le plan horizontal de la scène, n’a donc aucune raison de correspondre avec le sol réel de la scène d’intérieur (Fig. 9.27.(a)).
Nous allons donc, avant de faire l’insertion, aligner la grille avec des points du sol. Les cibles que nous avons suivies de manière supervisée et qui apparaissent en rouge dans la structure 3D constituent des repères précis et facilement identifiables. Nous allons donc utiliser trois d’entre eux pour recaler la grille :
1. sélectionner les trois points étiquetés x-y plane en figure 9.26 (ou trois points
![](/images/remos_downloads/detail/60/Cours3DSMAX-id6085.6085.pdf-253.jpg)
(a) (b) (c)
FIG. 9.27 – Alignement de la grille avec des points du sol.
FIG. 9.28 – Insertion d’un objet virtuel sur la grille.
quelconques sur le sol) : pour sélectionner une zone de points, définir avec la souris un rectangle autour des points; les points à l’intérieur du rectangle apparaissent en vert. Pour sélectionner plusieurs points distants, les sélectionner l’un après l’autre en maintenant la touche Ctrl enfoncée;
2. aller dans le menu Artifacts > Scene Geometry , et définir comme plan horizontal le plan passant par les trois points désignés : pourcela, cliquer simplement sur le bouton x-y plane après avoir sélectionné les points; la grille doit alors correspondre au sol de la scène (Fig. 9.27.(b));
3. sélectionner les deux points étiquetés y-axis en figure 9.26 et définir la droite passant par ces deux points comme étant l’axe y du repère de la scène : un côté de la grille devient alors parallèle à cette droite, c’est-à-dire au mur de droite de la scène (Fig. 9.27.(c));
4. une insertion sur le sol de la scène réelle est maintenant possible : le menu Actions > New Test Object permet d’insérer une coccinelle sur la grille. Repasser en mode 2D, et déplacer la coccinelle sur le plan horizontal de manière à ce qu’elle soit visible sur toute la séquence (9.28), puis jouer la séquence en cliquant sur le bouton Play Forwards.
FIG. 9.29 – Trajectoires obtenues avec la deuxième résolution (à gauche), puis en utilisant l’option de lissage (à droite).
Étape 8 : Lissage de la trajectoire de la caméra
En visualisant la séquence, on remarque que l’objet virtuel subit un effet de “tremblement” à certains instants, notamment entre les images 150 et 200. Cet effet est induit parun mouvementcalculé de caméra qui est saccadé sur cette portionde séquence (Fig. 9.29, gauche). Pour pallier ce problème, il est possible de lisser la trajectoire de la caméra. Cependant, il faut prendre garde à ne pas trop lisser la trajectoire, sous peine de remplacer l’effet de tremblement par un effet de lissage (cf. chapitre 5, section 5.2.3). Pour effectuer un lissage modéré de la trajectoire :
1. aller dans le menu Actions > Track Camera,
![](/images/remos_downloads/detail/60/Cours3DSMAX-id6085.6085.pdf-254.jpg)
2. sélectionner l’option Adjust only,
3. choisir 1 comme valeur de lissage Camera Path Smoothing,
4. cliquer sur le bouton Start.
La trajectoire calculée est maintenant plus lisse que précédemment (Fig. 9.29.(b)), et l’effet de tremblement a disparu dans la séquence augmentée.
Étape 9 : Exportation des résultats
Les mouvements de la caméra et la structure de la scène peuvent être exportés sous différents formats. Nous joignons à ce tutoriel les exports Maya et 3ds max du résultat que nous avons obtenu avec la trajectoire lissée. Le fichier pour Maya est un projet Maya ASCII, le fichier pour 3ds max un script 3ds max qu’il faut donc exécuter après l’avoir chargé. Lorsqu’on effectue un export vers 3ds max, un message indique aussi la valeur de l’ouverture à utiliser pour le rendu (Render aperture), qui doit donc être fixée manuellement sous 3ds max avant de lancer le script (28.168 pour le script ).
210
Tutoriel 5 : Positionnement basé image (rotation pure) – Boujour
Ce tutoriel présente le positionnement basé image dans le cas d’une rotation pure, à l’aide du logiciel Boujour. | |
Logiciel(s) utilisé(s) | Boujou Bullet 1, Boujou 3 |
Chapitre(s) concerné(s) ![]() | 3, 5, 6 |
Fichiers | tutoriel_5/ |
jouets_pan*.jpg | Séquence d’images à traiter (rotation pure) |
Fichier de résultat Boujou | |
Export Maya 4+ | |
Export 3ds max (render aperture = 28.168) |
Les séquences obtenues à partir d’une caméra subissant un mouvement de rotation pure doivent faire l’objet d’un traitement particulier. Cela est dû au fait que la reconstruction des points par triangulation est impossible pour ce type de séquence (cf. chapitre 5, section 5.2.5).
Ces séquences sont en fait plus faciles et plus rapides à traiter que les séquences générales, comme nous le voyons à présent :
![](/images/remos_downloads/detail/60/Cours3DSMAX-id6085.6085.pdf-284.jpg)
1. aller dans le menu File > Import Sequence et chargerle fichier ,
2. indiquer dans la fenêtre ouverte qu’il s’agit d’une rotation pure (Move Type : Nodal Pan) et valider,
3. les paramètres de distorsion de la caméra sont les mêmes que dans le tutorielprécédent (la même caméra a été utilisée pour l’acquisition) : R =0.027, %X = 70 et %Y =50,
4. lancer l’appariement automatique de points d’intérêts (Actions > Track Features),
5. lancer le suivi de caméra (Actions > Track Camera); on remarque que la résolution est beaucoup plus rapide que dans le tutoriel précédent, car les seuls paramètres de la fonction de coût sont les angles de rotation de la caméra dans chaque image (pas de translation et pas de point 3D);
6. passer en visualisation 3D (Window > Toggle 3D mode sous Boujou Bullet ou Window > Set active view to 3D mode sous Boujou 3); on constate que les points 3D sont distribués sur une sphère (Fig. 9.30) : en fait, à partir des rotations calculées de la caméra, on peut uniquement obtenir des rayons passant par le centre optique de la caméra (le même pour toutes les images puisqu’il n’y a pas de translation) et les pixels détectés dans les images; les points 3D affichés correspondent à l’intersection de ces rayons avec une sphère de rayon arbitraire;
7. insérer un objet (Actions > New Test Object) : l’objet est inséré de manière arbitraire. Comme nous n’avons pas de repère 3D, l’objet doit être translaté et tourné jusqu’à ce que sont image ait l’air d’être cohérente avec la perspective d’une image quelconque de la séquence. Cette étape est un peu fastidieuse, mais en contrepartie si la perspective est correcte dans une seule image de la séquence, elle le sera nécessairement (si les points de vue de la caméra sont corrects) dans toutes les images de la séquence (Fig. 9.31). Cela est dû au fait qu’une rotation pure n’implique pas de changement de perspective dans le plan image.
212
FIG. 9.30 – Scène 3D calculée dans le cas d’une rotation pure.
FIG. 9.31 – Dans le cas d’une rotation pure, si la perspective de l’objet virtuel est cohérente avec une image quelconque de la séquence, elle l’est aussi nécessairement avec toutes les autres images.
![](/images/remos_downloads/detail/60/Cours3DSMAX-id6085.6085.pdf-285.jpg)
214
Tutoriel 6 : Suivi de cible et chroma keying – After Effectsr
Dans cet exercice, nous disposons d’une séquence vidéo tournée en DV Pal d’une durée de 10 secondes. La scène représente un personnage sur fond bleu. La caméra effectue un panoramique de gauche à droite et de bas en haut. Le but de l’exercice est de remplacer le fond bleu par un décor, en tenant compte des mouvements de caméra. | |
Logiciel(s) utilisé(s) | After Effects 6.5 |
Chapitre(s) concerné(s) | 2 |
Fichiers | tutoriel_6/ |
Séquence à incruster | |
Image de fond ![]() | |
Fichier de résultat |
Étape 1 : Démarrage du projet
1. Démarrer After Effects
2. Créer un Nouveau Projet : Fichier > Créer > Nouveau projet (Ctrl+Alt+N)
3. Importer des fichiers : Fichier > Importer > Fichier (Ctrl+I)
Choisir les fichiers et à l’aide de la touche Ctrl puis OK.
4. Créer uneNouvelleComposition: Composition > Nouvelle composition (Ctrl+N); nommer la Composition (par exemple : Tracking 2D)
5. Choisir le paramètre prédéfini :PAL D1/DV, 720 x 576. Ce paramètre crée une composition avec une résolution de 720 pixels de large sur 576 pixels de haut avec un format de pixel à 1,067 et une cadence de 25 images par seconde.
6. Fixer la durée de la composition à 0 : 00 : 10 : 00 et cliquer sur OK pour accepter (Fig. 9.32).
FIG. 9.32 – Fenêtre de réglage des paramètres de composition.
7. Une fois les paramètres validés, la fenêtre de composition et la fenêtre de montage apparaissent dans l’espace de travail. Enregistrer le projet : Fichier > Enregistrer sous (Ctrl+Maj+S); nommerle fichier puis valider avec OK.
![](/images/remos_downloads/detail/60/Cours3DSMAX-id6085.6085.pdf-294.jpg)
8. Glisser-déplacerle fichiervidéo poupee.avidans la colonneNom des sources de la fenêtre de montage.
Étape 2 : Suivi de la cible
Un repère jaune a été fixé sur le fond bleu de la poupée, de manière à pouvoirappliquer un mouvement 2D au décor d’arrière-plan qui soit cohérent avec les mouvements de la caméra. Pour suivre ce repère :
1. Sélectionner le calque dans la fenêtre de montage et aller dans lemenu Animation > Suivi de mouvement. La fenêtre Contrôles de suivi s’affiche alors à l’écran.
2. Choisir Type de piste : Transformer et cocher seulement Position car l’image ne subit pas de changement d’échelle et n’effectue aucune rotation.
3. Positionnerle Point de piste 1 autourdu repère jaune sur le fond bleu (Fig. 9.33). Le rectangle intérieur représente le motif à suivre, il doit donc contenir le repère jaune. Le rectangle extérieur représente la zone de recherche, dont la taille doit être supérieure à la zone du motif.
4. Vérifier que le curseur de lecture est bien en début de montage et cliquer sur lebouton Analyser vers l’avant dans la fenêtre de Contrôles de suivi. Une fois l’analyse terminée, la trajectoire du mouvement de caméra s’affiche (Fig. 9.34).
Étape 3 : Attachement du décor à la cible
Pour attacher le décor à la cible, c’est-à-dire pour faire en sorte que les mouvements 2D du décor ajouté correspondent aux mouvements réels du fond :
1. Vérifierque le curseurest en débutde montageet Ajouterle fichier sous le calque dans la fenêtre de montage.
2. Pour le calque , cocher les options Flou directionnel et calque 3D. Ces options permettent de rendre plus réalistes le déplacement et la perspective. Dans les paramètres de géométrie de ce calque, changer les valeurs Point d’ancrage à 545,0; 450,0; -200,0 et Echelle à 180,0; 180,0. Les changements de coordonnées du point d’ancrage permettent de positionner correctement le calque par rapport à la scène sans perturber les changements de position induit par le suivi de cible. (Fig. 9.35).
3. Double cliquer le calque et dans la fenêtre de Contrôles de suivi cliquer Définir la cible. Dans la boîte de dialogue Cible du mouvement choisir le calque .
![](/images/remos_downloads/detail/60/Cours3DSMAX-id6085.6085.pdf-326.jpg)
4. Pour appliquer le mouvement au calque , cliquer sur Appliquer de la fenêtre Contrôles de suivi.
5. Dans la boîte de dialogue Options d’application du suivi de cible, choisir Appliquer les dimensions X et Y. Le mouvement du calque correspond maintenant au mouvement de la caméra.
FIG. 9.33 – Le suivi de mouvement dans la fenêtre de composition.
Étape 4 : Masquage linéaire par couleur
Il ne reste plus qu’à supprimer le fond bleu pour laisser apparaître l’arrière plan :
1. Appliquer un effet de masquage : Effet > Masquage > Masquage linéaire par couleur. La fenêtre Effets s’affiche dans l’espace de travail.
2. Dans Couleur de découpe utiliser la pipette et sélectionner le bleu de l’arrière plan.
3. À l’aide de l’outil Pipette +, ajouter une ou deux valeurs de bleu plus sombre. Faire une comparaison sur RVB.
4. Dans le champ Afficher, sélectionner Masque seul pour voir la découpe qui sera effectuée (Fig. 9.36).
5. Régler les paramètres Tolérance et Lissage afin d’obtenir la meilleure découpe possible. Il faut veiller à minimiser les zones grises à l’intérieur du masque de découpe sous peine de voir le décor à travers le sujet.
6. On peut aussi s’aider d’un solide de couleur pour peaufiner la découpe : Calque > Créer > Solide (Ctrl+Y).
![](/images/remos_downloads/detail/60/Cours3DSMAX-id6085.6085.pdf-327.jpg)
FIG. 9.34 – La trajectoire du mouvement de caméra est une suite de points 2D.
7. Réduire les bavures générées par la couleur du fond sur le sujet (spill en anglais) : Effet > Masquage > Nettoyage de masque. Pour cette opération, il faut sélectionner la couleur du fond bleu et appliquer un coefficient de suppression à la couleur parasite (Fig. 9.37).
8. Pour obtenir un résultat plus satisfaisant, on peut utiliser l’effet Dilaté-érodé répétitif : Effet > Assistants de masquage > Dilaté-érodé répétitif (Fig. 9.38). Cet effet permet de raccourcir ou d’étendre les contours d’un masque par petits incréments pour obtenir un cache net.
Étape 5 : Gommage du repère de suivi
La dernière étape de cet exercice consiste à retirer le repère de tracking qui n’a pas été supprimé par le chroma key :
1. Placerle curseurde lecture en début de montageet sélectionnerle calque .
2. À l’aide de l’outil Plume, tracer un masque autour du repère de tracking (Fig.
9.39).
FIG. 9.35 – Paramètres géométrie du calque .
3. Dans les paramètres du calque, dans Masques > Masque 1 cliquer l’icône en forme de montre à côté de Forme du masque pour créer un point clé.
4. Positionner le curseur de lecture à un autre instant et déplacer le masque autourdu repère de tracking. Ajouter autant de points clé que nécessaire afin de cacher le repère tout au long de l’animation.
![](/images/remos_downloads/detail/60/Cours3DSMAX-id6085.6085.pdf-328.jpg)
5. Une fois le repère caché sur toute la durée du montage, changer le mode defusion du masque en mode Soustraction. Le repère disparaît pour laisser place à la Poupée.
6. Compiler le film (Composition > Compiler le film ). La poupée est bien intégrée dans le décor et le mouvement de caméra est respecté (Fig. 9.40).
FIG. 9.36 – Masquage linéaire par couleur dans la fenêtre Effets.
FIG. 9.37 – Nettoyage de masque.
FIG. 9.38 – L’effet Dilaté-erodé répétitif.
FIG. 9.39 – Le masque autour du repère de tracking.
FIG. 9.40 – La composition finale.
Tutoriel 7 : Modélisation 3D – ImageModeler
ImageModeler est un outil d’aide à la modélisation 3D, basé essentiellement sur des correspondances de points entre plusieurs photographies de la scène. Dans ce tutoriel, nous montrons comment définir les correspondances de points, ajouter des contraintes de type coplanarité de points et orthogonalité de segments, modéliser la scène par assemblage de blocs élémentaires et extraire les textures des photographies. Ce tutoriel a été réalisé en collaboration avec Realviz. | |
Logiciel(s) utilisé(s) | ImageModeler 4.0 ![]() |
Chapitre(s) concerné(s) | 5,6 |
Fichiers | |
Image{1,2,3}.jpg | Photographies du bâtiment à modéliser |
Résultat de l’étape 1 | |
Résultat de l’étape 2 | |
Résultat de l’étape 3 | |
Exemple de modélisation plus complexe |
FIG. 9.41 – Définition du premier marqueur dans les images 1, 2 et 3.
![](/images/remos_downloads/detail/60/Cours3DSMAX-id6085.6085.pdf-330.jpg)
Comme nous l’avons au chapitre 5, un minimum de huit points appariés dans trois images est nécessaire pour retrouverà la fois les coordonnées3D des points appariés et les vues associées à chaque image. Lorsque deux images seulement sont utilisées, on peut obtenirun reconstructionprojectivede la scène et des deux vues, et des contraintes supplémentaires(orthogonalitéentre deux segments par exemple)peuventêtre utilisées pour "remonter" à une reconstruction euclidienne. Dans ce tutoriel, une première calibration est obtenue à partir de la configuration minimale (huit points, trois images), mais nous montronsaussi commentajoutercertaines contraintes pouraffinerle résultat.
Étape 1 : Chargement des images et désignation des correspondances
Nous commençons par charger les trois images de la scène (vues aériennes d’un bâtiment) :
1. Aller dans le menu File > Load Images et cliquer sur le bouton Load Images.
2. Sélectionnersimultanémentles trois fichiers ,Image2.jpget (click gauche sur le premier fichier puis SHIFT + click gauche sur le dernier). Cliquer sur Ouvrir puis OK deux fois de suite.
Pour définir une correspondance de points entre les trois images :
1. Sélectionner l’onglet Calibration (qui doit normalement déjà être activé), et cliquer sur l’icône Place Marker (croix rouge et croix noire décalée).
2. Placer le curseur de la souris sur l’image 1, par-dessus le coin de la terrasse le plus proche de la caméra (Fig. 9.41). Cliquer sur le bouton gauche de la souris, sans le lâcher : un zoom apparaît alors autour du pixel visé, qui vous permet de positionner le marqueur avec précision.
3. Cliquer ensuite sur le même coin dans les images 2 et 3 (Fig. 9.41). Une première correspondance est établie.
De la même manière, définir les sept autres marqueurs montrés sur l’image 2 en figure 9.42.À tout moment, un marqueurpeut être déplacé grâce à l’icône Move Marker (grande croix rouge sur petite croix noire). Lorsque le huitième marqueur est ajouté, les points 3D et les paramètres des trois vues sont automatiquement calculés.
FIG. 9.42 – Position des huit marqueurs dans l’image 2.
![](/images/remos_downloads/detail/60/Cours3DSMAX-id6085.6085.pdf-331.jpg)
Étape 2 : Ajout de contraintes sur la scène
Pour affiner la calibration obtenu, nous allons définir trois types de contraintes dans la scène : une contrainte d’angle droit entre deux segments, une contrainte de distance entre deux points et une contrainte d’appartenance de plusieurs points à un plan.
Contrainte d’angle droit
Avant de définir une contrainte d’angle droit, nous devons désigner un neuvième marqueur dans les images :
1. Définir un marqueur dans le coin le plus au fond de la terrasse dans l’image1 (Fig. 9.43.(a)). Lorsque huit points sont appariés entre deux images, on peut calculer la droite épipolaire de n’importe quel point de la première image dans la seconde (cf. encadré sur la géométrie de deux caméras, page 69). Lorsqu’un marqueur est défini dans l’image 1, sa position dans les deux autres images est donc maintenant contrainte par la droite épipolaire du point dans ces images.
2. Préciser la position du point le long de la droite épipolaire dans l’image 2 (Fig.9.43.(b)). La position du marqueur dans l’image 3 est alors automatiquement calculée dans la troisième vue, par intersection des deux droites épipolaires obtenues dans cette vue (Fig. 9.43.(c)).
Les droites passant par les marqueurs (1,2) et (1,9) sont perpendiculaires. Nous allons indiquer cette contrainte au système :
1. Sous l’onglet Calibration, cliquer sur l’icône Place Corner (deux axes avec un carré rouge marquant l’angle droit).
2. Cliquer successivement sur les marqueurs 1 (Locator), 9 et 2 : le coin à angle droit est défini.
3. Imposer une mise à jour de la calibration pour tenir compte de cette contrainte (Camera > Calibrate).
(a) (b) (c)
![](/images/remos_downloads/detail/60/Cours3DSMAX-id6085.6085.pdf-332.jpg)
FIG. 9.43 – Lorsque huit points sont appariés entre deux images, la désignation d’une nouvelle correspondance est contrainte par la géométrie épipolaire.
Nous pouvons profiter de cet angle droit pour définir le système de coordonnées associé à la scène :
1. Cliquer sur l’icône Define WorldSpace (représentant un repère 3D) : Le repère est placé arbitrairement dans l’image.
2. Faire glisser l’origine du repère vers le marqueur 1, l’extrêmité de l’axe X vers le marqueur 2 et l’extrêmité de l’axe Y vers le marqueur 9. L’axe Z est déduit des deux autres axes.
Contrainte de distance
Pour que les dimensions du modèle reconstruit respectent les dimensions réelles de la scène, nous pouvons spécifier la taille d’un segment délimité par deux marqueurs :
1. Cliquer sur l’icône Define Reference distance (règle graduée) : un segment joignant deux marqueurs quelconques est créé.
2. Faire glisser les deux extrêmités du segment sur les marqueurs 1 et 2.
3. En-dessous des icônes de calibration, la taille de ce segment peut être définie(Reference Distance) : remplacer la valeur par défaut par 20 m (cette distance a été mesurée sur le site).
Contrainte de plan
![](/images/remos_downloads/detail/60/Cours3DSMAX-id6085.6085.pdf-333.jpg)
Une contrainte de type plan ne permet pas d’indiquer que plusieurs points sont sur un même plan (ce qui n’aurait de sens qu’à partir de quatre points), mais que plusieurs points partagent les même coordonnées X, Y ou Z (ce qui a déjà un sens à partir de deux points). Par exemple, dans le repère que nous avons défini, les marqueurs 1, 2 et 9 ont la même coordonnée en Z et les marqueurs 1, 2 et 7 la même coordonnée en Y. Pour définir un telle contrainte, il suffit de sélectionner ensemble les marqueurs concernés (boutonSelect Marker(s) puis SHIFT+click gauchesur chaque marqueur),puis d’aller dans le menu Marker > Define Planar Constraint.
(a) (b) (c)
FIG. 9.44 – Modélisation et texturage de la scène.
Étape 3 : Modélisation de la scène et extraction des textures
Pour modéliser le bâtiment avec terrasse, il est utile d’ajouter un dixième marqueur à la position indiquée en figure 9.44.(a). Une fois que ce marqueur est ajouté, le bâtiment peut être modélisé simplement à l’aide d’un parallélépipède dont quatre des sommets passent par les marqueurs 1, 2, 9 et 10. Pour cela :
1. Cliquer sur l’onglet Modeling, puis sur l’icône Add primitive (représentant un cylindre, un cube et une sphère) : la primitive ajoutée par défaut est un cube.
2. Faire glisser un coin du cube sur le marqueur 1, puis cliquer successivement surles marqueurs 9, 2 et 10 : la boite doit alors englober le bâtiment comme montré en figure 9.44.(b).
Pour texturer cette primitive :
1. Cliquer sur l’onglet Texturing puis sur l’icône Select Objects (qui doit déjà être actif).
2. Cliquer sur le parallélépipède précédemment défini puis sur l’icône Extract texture.
3. La texture d’une facette peut être puisée dans n’importe quelle images où la facette est visible : l’utilisateurdoit doncchoisirentre calculerune texturemoyenne (et donc plus lisse) sur toutes ces images, ou choisir l’image dans laquelle la texture apparaît le mieux. Garder l’option par défaut et valider.
![](/images/remos_downloads/detail/60/Cours3DSMAX-id6085.6085.pdf-334.jpg)
À l’issue de cette étape, six textures ont été créées (une par facette, les facettes non visibles recevant une texture noire), et le modèle texturé apparaît dans la fenêtre en bas à droite de la zone de travail (Fig. 9.44.(c)). Ce modèle peut être manipulé en cliquant sur le petit cercle bleu en bas à droite de la fenêtre. Le lecteur pourra s’exercer à compléterle modèle en ajoutant d’autres points et d’autres primitives (ouvrirle fichier pour un exemple de résultat pouvant être obtenu à partir de ces images).
un simple quadrillage imprimé sur une feuille A4, disponible dans le fichier powerpoint .