Avant de commencer à détailler plus avant cette étape, il faut préciser un point important : l'optimisation de l'ordinateur sur lequel est installé le logiciel de photogrammétrie, car le processus peut être extrêmement gourmand en puissance et malheureusement, aucun logiciel de photogrammétrie ne permet de fonctionner en calcul distribué sur une render farm. Idéalement, l'ordinateur devrait avoir les caractéristiques suivantes :

  • Processeur puissant (Core i7 ou i9)
  • 8 Go de mémoire vive est un strict minimum : 16 voire 32Go sont souvent nécessaire si la reconstruction requiert plus d'un millier de photos, et 64 ou 128 Go lorsqu'elle requiert plus d'une dizaine de milliers de photos.
  • Carte graphique Nvidia puissante (GeForce Ti1080, éventuellement deux en SLI). Attention : les logiciels de photogrammétrie ont intensivement recourt à la carte graphique pour faire leurs calculs et utilisent CUDA, le langage de programmation développé par NVidia. Pour cette raison, CaptureReality par exemple refuse de fonctionner avec une carte d'une autre marque.
  • Disque dur SSD 1To : idéalement, il faut 4 disque durs, un pour le système et sur lequel est installé le logiciel, un pour le stockage des photos, un pour le cache mémoire du logiciel, et un dernier pour le stockage final - idéalement tous en SSD, voire en SSD M.2.

On peut bien sûr se débrouiller avec une configuration plus modeste, mais les calculs seront plus longs - et le logiciel peut même refuser de faire une reconstruction s'il ne dispose pas d'assez de mémoire vive (il faut dans ce cas baisser la qualité de la reconstruction et/ou la quantité de photos utilisées).

Les deux objectifs :

Le processus de reconstruction photogrammétrique a deux objectifs principaux, et éventuellement un troisième optionnel :

Le HighPoly : il s'agit de créer une version 3D de l'objet photographié aussi précise et fine que possible - aussi appelé HighPoly. La finesse de la reconstruction est directement dépendante de la quantité de points que le logiciel va créer. Ce paramètre devrait être aussi élevé que possible mais en prenant en compte deux contraintes : le temps de calcul et la quantité de mémoire vive disponible. Sur ce point, tous les logiciels ne sont pas égaux, certains étant beaucoup plus rapides que d'autres. Le modèle final ne devrait pas compter moins d'un million de polygones - le modèle 3D du buste en plâtre qui sert d'exemple compte un peu moins de 8 millions de polygones... Dans le cadre du flux de production présenté à la partie précédente, il est conseillé de ne pas dépasser les 40 millions de polygones car il sera très lourd à manipuler pour ZBrush dans la partie suivante. Une astuce souvent utilisée est d'abord de réaliser la reconstruction la plus fine possible, puis de l'exporter avec sa texture : elle servira à obtenir la meilleure qualité des textures lors de l'étape du baking. Dans un second temps, le modèle très haute définition est dégradé pour le ramener à un modèle comportant entre 1 et 30 millions de polygones : plus léger, il sera plus facile à manipuler lors de la retopologie.

reconstruction buste platre RealityCapture

Le buste en plâtre une fois reconstruit par RealityCapture (7.992.956 polygones) : environ 20 minutes de calcul

La texture : Une fois le modèle 3D reconstruit, les logiciels de photogrammétrie peuvent se servir des photos pour assembler une image qui, une fois projetée sur le modèle, lui redonnera son aspect d'origine. Cette texture est très importante car elle sera exploitée par la suite pour obtenir le rendu final de l'objet - elle n'est parfois pas nécessaire si le rendu 3D de l'objet doit différer fortement de l'objet original (par exemple, si le buste en plâtre doit être transformé en buste en bronze). La texture doit néanmoins être calculée malgré car elle va permettre d'intégrer les coordonnées de mapping à l'objet 3D. Dans le cas de l'exemple, une texture de 8192x8192 a été créée à partir des 72 photos.

Texture buste plâtre 8K

La texture créé par RealityCapture (8K) : on voit qu'elle est composée d'une multitude de petits morceaux - ce sont les paramètres de mapping intégrés au maillage qui permettent de les appliquer au bon endroit sur le modèle 3D.

La décimation : tous les logiciels de photogrammétries disposent d'une fonction de "décimation", c'est-à-dire de simplification du maillage polygonal. Cette solution n'est intéressante que si l'on ne dispose pas d'un logiciel 3D (ou si on veut exploiter directement le résultat) car la décimation donne quasi systématiquement un résultat de moins bonne qualité. Elle peut aussi être intéressante pour produire un modèle pas trop lourd à manipuler par la suite comme expliqué précédemment.

Les étapes :

  • Alignement des photos : le logiciel calcule à la position originale des appareils photo au moment de la prise de vue. Il en déduit ensuite un nuage de points qui représentent la scène photographiée.
  • Création du nuage de points dense : le logiciel calcul à partir du nuage de points précédent une deuxième série de points, nettement plus dense que le premier.
  • Création du maillage : à partir de ces points, le logiciel créé des polygones qui donnent la forme finale de l'objet reconstruit
  • Création de la texture et du mapping : à partir des photos qui ont servies à la reconstruction, le logiciel élabore des coordonnées de mapping et une image. Les premières permettent au logiciel de savoir comment projeter la seconde sur l'objet 3D afin de restituer son aspect initial.
  • Exportation : enfin, le HighPoly et la texture sont exportés pour l'étape suivante - si possible au format FBX (si le modèle compte moins de 33,5 millions de polygones, le format FBX ne permettant pas d'en mémoriser davantage), OBJ ou ABC.

Ce descriptif est très simplifié. On peut trouver beaucoup plus de détails sur chacune des étapes qui constituent les principes de la photogrammétrie numérique et des principes mathématiques et algorithmiques qui sont utilisée en regardant cette vidéo (en français) : https://www.youtube.com/watch?v=CxKzHJEff4w

Les logiciels :

logo photoscanAgisoft Photoscan

Probablement le plus populaire des logiciels de photogrammétrie actuels, Photoscan est un logiciel puissant malgré une interface assez sobre et une ergonomie très claire. Il dispose d'une barre d'outil qui permet de passer très intuitivement d'une étape à l'autre.

Les plus : ce logiciel est surtout performant pour la reconstruction de bâtiments, de terrains et de textures PBR d'environnement. Il permet des reconstructions avec une très grande quantité de polygones (plusieurs dizaine de millions). C'est aussi le seul à pouvoir fonctionner en OpenCL (donc sur Mac). Une option intéressante mérite d'être soulignée : la possibilité d'utiliser des photos 360° pour la reconstruction.

Les moins : indéniablement, Photoscan est lent, parfois très lent. Il n'est pas rare que le rendu prenne plusieurs heures, et parfois plus d'une journée entière. Il est par ailleurs très gourmand en mémoire vive et peut échouer (après plusieurs heures...) à reconstruire un objet 3D faute d'en avoir suffisamment. Il manque aussi parfois quelques options pour faire face aux cas complexes.

logo realitycaptureRealityCapture

Arrivé récemment, RealityCapture dispose d'une interface assez originale qui peut déconcerter au début mais qui s'avère plutôt efficace à l'usage. Comme Photoscan, son ergonomie simplifiée permet de le prendre rapidement en main (il suffit de suivre les différentes étapes de la barre "Workflow").

Les plus : la très grande qualité de RealityCapture est sa rapidité, qui peut parfois atteindre un facteur 10 par rapport aux autres logiciels. Il donne les meilleurs résultats pour la reconstruction d'objets et dispose de nombreuses options qui permettent de résoudre les cas complexes - il dispose aussi du meilleur mode de décimation. C'est enfin le seul logiciel qui permet de combiner photos et relevés laser pour la reconstruction 3D.

Les moins : RealityCapture exige une carte NVidia pour fonctionner - presque 70% des calculs de certaines phases se font sur le GPU, la puissance de la carte graphique est donc déterminante. La quantité d'options et leur appellation parfois obscure le rendent complexe dès qu'on sort des sentiers battus. Il faut enfin souligner le tarif très élevé des différents types de licence qui en font le logiciel le plus cher du marché.

logo zephyr3d

Zephyr 3D

Moins connu, ce logiciel a une interface beaucoup plus classique que les précédents, et tout aussi simple et ergonomique - un habitué des logiciels de 3D s'y retrouvera très vite. Assez proche de Photoscan, il donne des résultats assez bons mais avec des temps de calcul longs.

Les plus : Zephyr dispose d'option particulièrement originales et intéressante pour reconstruire des scènes à partir d'une séquence vidéo. Il a également un module de masque pour spécifier les zones de la photo à ne pas reconstruire. C'est aussi le seul à pouvoir fonctionner avec DirectX - donc à ne pas exiger une carte nVidia pour fonctionner.

Les moins : une qualité de reconstruction un peu moins performante que les deux autres logiciels, pour une durée de calcul souvent supérieure.

Meshroom logo

Meshroom

Très utilisé, Meshroom dispose d'un avantage substantiel sur les trois autres logiciels présentés : il est open source et gratuit. Comme souvent pour les logiciels open source, il dispose d'une communauté très active, et de forums sur lesquels ont trouve les réponses à de nombreux problèmes.

Les plus : sa gratuité, bien sûr, d'autant plus que les licences des logiciels de photogrammétrie sont loin d'être données. Son interface nodale est également très claire et pratique à utiliser. Enfin, Meshroom dispose de nombreux modules supplémentaires qui permettent d'étendre ses fonctionnalités - par exemple de l'intégrer directement à Maya ou à Nuke. Son système nodal et le fait qu'il sauvegarde les données séparemment pour chaque étape permet également

Les moins : conçu et développé par des scientifiques et des programmeurs au fait des algorithmes de triangulation et de computer vision, habitué à utiliser Github et à trafiquer dans les fichiers du logiciel, Meshroom peut être parfois un peu rude pour les débutants - mais c'est aussi très utile pour comprendre en profondeur les différentes étapes de la photogrammétrie.

Procédure 1 : reconstruire un buste en plâtre avec Meshroom

Le flux de production de MeshRoom est au premier abord extrêmement simple : après avoir chargé les photos (glissé/déposé dans la partie "Images"), il suffit d'appuyer sur le bouton "start" en haut de l'interface et laisser le logiciel calculer. Le processus peut être long car MeshRoom a recourt à des algorithmes qui privilégient la précision sur la rapidité. Dans la partie inférieure du logiciel, on peut voir les différents nodes qui constituent les étapes de la reconstruction. Le bouton "start" permet de lancer le calcul pour l'ensemble de l'arborescence, mais on peut calculer chaque étape séparément (clic droit sur le node puis "calculate").

Meshroom start

Meshroom permet de visualiser la reconstruction au fur et à mesure du calcul : dans la partie de droite, on peut voir le nuage de points et l'emplacement des caméras qui ont déjà été calculés.

Si MeshRoom semble simple, il peut devenir beaucoup plus complexe lorsqu'on rentre dans le détail des paramètres de chaque node, ce qui est parfois indispensable pour faire face aux problèmes que peuvent poser certaines reconstructions (la vidéo sur les étapes de la photogrammétrie dont les références sont données au début de ce chapitre donne également quelques éléments sur ces nodes et leurs paramètres). Ce tutoriel donne aussi plusieurs précision - notamment sur la décimation et l'exportation. Enfin, la wikipédia et le groupe de discussion google dédiés au logiciel donne de très nombreuses et utiles informations.

Meshroom final

Le résultat final après environ 1h30 de calcul. Le fichier 3D de l'objet reconstruit et sa texture sont automatiquement sauvegardés : pour y accéder, clic droit sur le dernier node (Texture) puis "Open Folder".

Procédure 2 : reconstruire un buste en plâtre avec RealityCapture

Le processus de reconstruction de RealityCapture peut être aussi simple que celui de MeshRoom : après avoir chargé les photos (boutons "Inputs" ou "Folder"), il suffit d'appuyer sur le bouton "start" et d'attendre. Mais il est préférable de gérer séparément les trois étapes principales.

RealityCapture import photos

L'interface de RealityCapture après avoir chargé les photos

Après avoir chargé les photos du buste en plâtre, sélectionnez l'onglet "Alignement", puis sur le bouton "Settings". Dans la partie inférieure droite de l'interface, tous les paramètres de l'alignement apparaissent. Les plus importants à ce stade sont "Max features per mpx", "Max fetatures per image", "Image Overlap" et "Detector sensitivity". Les deux premiers indiquent le nombre de motifs recherchés dans chaque photo : augmenter ces paramètres permet souvent d'obtenir de meilleurs résultats. Le troisième dépend du recouvrement entre chaque photo : s'il est de l'ordre de 85% ou plus on peut sélectionner "High", s'il est entre 60 et 85% "Medium" suffit, en dça de 60% il faut sélectionner "Low". Le dernier paramètre est la sensibilité au contraste pour la sélection des motifs : moins les photos sont contrastées, plus l'objet est terne et sa surface uniforme plus la sensibilité doit être élevée.

RealityCapture Alignement

Une fois le calcul d'alignement terminé, le nuage de points apparaît dans la partie droite de l'interface

L'étape suivante est la reconstruction. Sélectionnez l'onglet "Reconstruction", puis cliquez sur le bouton "Settings" pour faire apparaître les paramètres dans la partie inférieure gauche. Le paramètre le plus important est "Maximal Vertices count per part" qui détermine la finesse du résultat final. La valeur par défaut de 5 millions est suffisante pour le buste en plâtre, mais il faut parfois augmenter significativement ce chiffre pour les modèles comportant de ombreux détails ou impliquant un grand nombre de photos.

RealityCapture reconstruction

Une fois le calcul de reconstruction terminé, le modèle 3D apparaît dans la partie droite

Une fois la reconstruction calculée, il est important d'éliminer les groupes de face isolés, et toutes les parties qui ne seront pas nécessaire pour la suite - notamment l'arrière plan de l'objet et son support. RealityCapture dispose de quelques outils de sélection dans l'onglet reconstruction, et en particulier un mode "Advanced" qui permet de sélectionner les faces les plus grandes, isolées, le plus grand composant, etc. Dans le même onglet, il y a également des outils qui permettent de vérifier la validité du maillage, de boucher les trous, de décimer ou de lisser le maillage : il ne faut pas hésiter à y recourir pour limiter les problèmes par la suite.

Dernière étape : le calcul de la texture. Après avoir vérifié dans les paramètres la définition à laquelle elle doit être calculée, cliquez sur le bouton "Texture" pour lancer la dernière opération. Lorsqu'elle est terminée, il ne reste plus qu'à sauvegarder le modèle 3D et sa texture en cliquant sur "Export".

RealityCapture Texture

Le résultat final après environ 12 minutes de calcul de l'alignement à la texture - à comparer aux 1h30 de MeshRoom...

Modifié le: samedi 20 juillet 2019, 17:50