fSpy est un logiciel gratuit qui permet de recréer la perspective d’une image du monde réel dans un environnement virtuel.
Transcription de la vidéo
Salut ! Ce que vous voyez à l’écran est une photo prise il y a environ 30 ans, sur laquelle apparaissent mon petit frère, ma mère et mon grand-père paternel, dans l’école que je fréquentais lorsque j’étais enfant.

Ce que vous regardez maintenant, c’est ce même lieu recréé dans Blender, texturé dans Substance Painter et rendu navigable dans Unity.
En partant de ce simple couloir, j’ai ensuite recréé d’autres environnements, mais tous les projets ont un point commun : je commence toujours avec fSpy pour recréer la position de la caméra virtuelle, et comme on peut spécifier les dimensions d’un objet de référence, cela permet aussi de déterminer les dimensions des environnements et des objets.
fSpy est un logiciel gratuit qui permet de recréer la perspective d’une image du monde réel dans un environnement virtuel. C’est extrêmement utile pour faire des photomontages ou recréer des objets ou des lieux à partir d’une photo. Dans la description de cette vidéo, vous trouverez le lien vers la page principale du logiciel, que je montre actuellement à l’écran. fSpy est un logiciel autonome qui exporte les données reconstruites dans un fichier de projet. Pour importer ce fichier dans Blender, il faut aussi télécharger l’add-on qui permet l’intégration avec Blender. Avant de commencer le tutoriel, je pense qu’il est approprié de vous montrer la page de son créateur, Per Gantelius.
Après avoir téléchargé et installé fSpy, lançons l’application. Au centre de l’écran, il y a un bouton permettant d’ouvrir le projet d’exemple, accompagné d’un tutoriel sur le site officiel. Nous allons l’ignorer et importer une photo dans fSpy. Cela peut se faire via le menu File ou tout simplement en faisant glisser l’image sur l’écran principal de fSpy.

Dans le menu à gauche, nous pouvons définir le nombre de points de fuite à identifier sur l’image. Je le laisse à 2, car à première vue, on peut facilement identifier un point de fuite qui devrait se trouver à la porte au fond de la photo, tandis qu’un second devrait être sur la droite, hors champ, en suivant les lignes du carrelage et de la poutre au bout du couloir.

Utiliser fSpy est extrêmement simple : il suffit de cliquer sur les extrémités des segments colorés et de les placer de manière à suivre les lignes de fuite, que fSpy utilisera ensuite pour trouver les points de fuite. En maintenant la touche SHIFT enfoncée tout en cliquant sur un de ces points de contrôle, une loupe s’active, ce qui permet un placement plus précis. Il y a deux paires de segments en particulier, car chaque paire doit être alignée sur l’un des deux axes, X et Y. Dans mon cas, j’ai beaucoup de chance car le sol, les murs et les poutres offrent de nombreuses lignes que je peux utiliser pour positionner ces deux paires.

Vous avez peut-être aussi remarqué qu’au fur et à mesure que je place les points de contrôle, le système de référence centré sur le point blanc s’aligne automatiquement, en particulier les axes X et Y qui suivent les lignes de fuite de l’image. Le point blanc représente ce qui sera l’Origin de l’univers virtuel dans Blender.

Dans ce cas, le système de référence a été bien recréé en quelques étapes. Si l’axe Z pointe vers le bas ou si vous rencontrez d’autres problèmes d’orientation, essayez d’ajuster les axes dans le menu Vanishing Point Axes.

S’il y a dans l’image des distances dont vous connaissez la valeur, ou des objets dont vous connaissez approximativement les dimensions, vous pouvez choisir un axe de référence dans le menu Reference Distance et déplacer les points de contrôle du segment qui apparaît pour lui attribuer une longueur. Dans mon cas, je ne connais pas la hauteur de la porte au fond, mais je sais que la base des piliers faisait environ 1 mètre de haut. Je déplace donc l’Origin de l’univers virtuel vers un sommet à la base du pilier, je redimensionne le segment de la Reference Distance pour qu’il corresponde à la hauteur de la base, puis j’entre "1 mètre" dans le champ numérique de la section Reference Distance du menu.

Une fois cela fait, il ne reste plus qu’à exporter les informations obtenues, en choisissant simplement Save As dans le menu File et en spécifiant un chemin de sauvegarde.

Comme mentionné précédemment, en plus du logiciel fSpy autonome, il est nécessaire de télécharger l’add-on d’importation pour Blender, qui peut être installé via l’onglet Add-Ons dans la fenêtre Preferences.

Pour l’utiliser, il faut aller dans la section Import du menu File et importer le fichier projet que nous avons enregistré à l’instant sur le disque.

L’add-on créera une caméra virtuelle avec la même image de fond que celle utilisée dans le projet fSpy. L’Origin de l’univers virtuel dans Blender sera positionné exactement là où nous avons placé le point blanc avec les axes cartésiens dans fSpy au moment de l’enregistrement.

Dans le projet fSpy, j’ai positionné l’Origin à la base de l’un des piliers et défini les mesures de manière à ce que la base de chaque pilier soit considérée comme mesurant 1 mètre de hauteur. En insérant maintenant un cube de 1 mètre de côté et en le plaçant à l’Origin de l’univers virtuel, ce cube correspondra parfaitement à la base du pilier sur la photo.

Vous pouvez maintenant commencer à modéliser l’environnement et les éléments qu’il contient. Ici, je montre un timelapse d’une modélisation grossière de la scène afin de montrer comment l’orientation de la caméra virtuelle créée par fSpy aligne les géométries avec les éléments de la photo d’origine.

Dans ce second timelapse, je montre le placement de quelques assets réalisés séparément, puis importés dans la scène. En utilisant les outils de snapping sur les vertex et les edges, il devient facile de positionner les objets dans l’environnement et de les redimensionner. Ensuite viennent les ajustements, le UV unwrapping et la texturation des surfaces, permettant une reconstitution rapide d’un environnement virtuel à partir d’une photo, avec des mesures, distances et proportions raisonnablement précises.

J’espère que ce tutoriel vous a été utile ! À bientôt !