Étude de cas - HoloTour
HoloTour for Microsoft HoloLens propose des visites immersives 3D personnelles de lieux emblématiques dans le monde entier. Comme l’ont découvert les concepteurs, les artistes, les producteurs, les concepteurs audio et les développeurs travaillant sur ce projet, la création d’un rendu 3D convaincant d’un lieu bien connu prend un mélange unique de créativité et de magie technologique. Cette étude de cas vous guide tout au long du processus de capture et de création du contenu utilisé pour HoloTour.
La technologie
Avec HoloTour, nous voulions permettre aux gens de visiter certaines des destinations les plus étonnantes du monde, comme les ruines de Machu Picchu au Pérou ou la Place Navona moderne en Italie, à partir de leurs propres salons. Notre équipe a fait de l’holotour l’objectif de « vous donner l’impression d’être vraiment là ». L’expérience devait être plus que des images ou des vidéos. En tirant parti de la technologie unique d’affichage, de suivi et d’audio d’HoloLens, nous avons pensé que nous pourrions pratiquement vous transporter dans un autre endroit. Nous devons capturer les vues, les sons et la géométrie tridimensionnelle de chaque emplacement que nous avons visité, puis les recréer dans notre application.
Pour ce faire, nous avions besoin d’un appareil photo à 360° avec capture audio directionnelle. Il devait capturer à très haute résolution, de sorte que les images soient nettes lorsqu’elles sont lues sur un HoloLens et que les caméras doivent être positionnées à proximité les unes des autres afin de réduire les artefacts de couture. Nous voulions une couverture sphérique complète, non seulement le long de l’horizon, mais aussi au-dessus et au-dessous de vous. La plate-forme devait également être portable pour que nous puissions l’emmener partout dans le monde. Nous avons évalué les options disponibles dans le commerce et nous avons réalisé qu’elles n’étaient tout simplement pas assez bonnes pour réaliser notre vision, soit en raison de la résolution, du coût ou de la taille. Si nous ne pouvions pas trouver un appareil photo qui répondait à nos besoins, nous devrions en créer un nous-mêmes.
Construction de l’appareil
La première version, fabriquée à partir de carton, de Velcro, de ruban adhésif et de 14 caméras GoPro, était quelque chose dont MacGyver aurait été fier. Après avoir examiné tout, des solutions bas de gamme aux appareils fabriqués sur mesure, les caméras GoPro ont finalement été la meilleure option pour nous, car elles étaient petites, abordables et avaient un stockage de mémoire facile à utiliser. Le petit facteur de forme était particulièrement important, car il nous a permis de placer des caméras assez proches les unes des autres, plus la distance entre les caméras est petite, plus les artefacts de couture seront petits. Notre disposition de caméra unique nous a permis d’obtenir une couverture de sphère complète et suffisamment de chevauchement pour aligner intelligemment les caméras et lisser certains artefacts pendant le processus de couture.
Tirer parti des fonctionnalités sonores spatiales sur HoloLens est essentiel pour créer une expérience immersive réelle et convaincante. Nous avons utilisé un réseau de quatre microphones situé sous les caméras sur le trépied, qui capture le son de l’emplacement de notre caméra dans quatre directions, nous donnant suffisamment d’informations pour créer des sons spatiaux dans nos scènes.
Notre appareil photo 360° a été installé pour filmer à l’extérieur du Panthéon.
Nous avons testé notre plate-forme maison en l’emmenant jusqu’à Rattlesnake Ridge près de Seattle, capturant le paysage au sommet de la randonnée. Le résultat, bien que beaucoup moins soigné que les emplacements que vous voyez dans HoloTour aujourd’hui, nous a donné confiance que notre conception de la plateforme était assez bonne pour vous faire sentir comme si vous y êtes vraiment.
Nous avons mis à niveau notre plate-forme de Velcro et de carton à un boîtier d’appareil photo imprimé en 3D et acheté des packs de batteries externes pour les caméras GoPro afin de simplifier la gestion de la batterie. Nous avons ensuite fait un test plus approfondi, voyageant jusqu’à San Francisco pour créer une visite miniature de la côte de la ville et du pont emblématique golden gate. Cet appareil photo est ce que nous avons utilisé pour la plupart de nos captures des emplacements que vous visitez dans HoloTour.
L’appareil photo 360° filmant à Machu Picchu.
Dans les coulisses
Avant de filmer, nous avions besoin de déterminer quels emplacements nous voulions inclure dans notre visite virtuelle. Rome était le premier endroit que nous avions l’intention d’expédier et nous voulions l’obtenir correctement, alors nous avons décidé de faire un voyage de repérage à l’avance. Nous avons envoyé une équipe de six personnes, dont des artistes, des designers et des producteurs, pour une visite en personne des sites que nous avions envisagés. Le voyage a pris environ 9 jours – 2,5 pour le voyage, le reste pour le tournage. (Pour Le Machu Picchu, nous avons choisi de ne pas faire de voyage scout, en recherchant à l’avance et en réservant quelques jours de tampon pour le tournage.)
À Rome, l’équipe a pris des photos de chaque région et a noté des faits intéressants ainsi que des considérations pratiques, telles que la difficulté de se déplacer à chaque endroit et la difficulté de filmer en raison de la foule ou des restrictions. Cela peut ressembler à des vacances, mais c’est beaucoup de travail. Les journées commençaient tôt le matin et allaient sans arrêt jusqu’au soir. Chaque soir, des images ont été téléchargées pour que l’équipe de Seattle soit examinée.
Notre équipe de capture à Rome.
Une fois le voyage scout terminé, un plan final a été fait pour le tournage réel. Cela nécessitait une liste détaillée de l’endroit où nous allions filmer, à quel jour et à quelle heure. Chaque jour à l’étranger est cher, donc ces voyages devaient être efficaces. Nous avons réservé des guides et des gestionnaires à Rome pour nous aider et entièrement utilisé tous les jours d’avant le lever du soleil à après le coucher du soleil. Nous devons obtenir le meilleur film possible pour que vous vous sentiez comme si vous êtes vraiment là.
Capture de la vidéo
Le fait d’effectuer quelques opérations simples pendant la capture peut faciliter le post-traitement. Par exemple, chaque fois que vous assemblez des images de plusieurs caméras, vous vous retrouvez avec des artefacts visuels, car chaque caméra a une vue légèrement différente. Plus les objets sont proches de la caméra, plus la différence entre les vues est grande et plus les artefacts de couture seront volumineux. Voici un moyen simple de visualiser le problème : tenez votre pouce vers le haut devant votre visage et regardez-le d’un seul œil. Maintenant, changez les yeux. Vous verrez que votre pouce semble se déplacer par rapport à l’arrière-plan. Si vous tenez votre pouce plus loin de votre visage et répétez l’expérience, votre pouce semblera moins bouger. Ce mouvement apparent est similaire au problème de couture que nous avons rencontré : vos yeux, comme nos caméras, ne voient pas exactement la même image, car ils sont séparés par un peu de distance.
Parce qu’il est beaucoup plus facile d’empêcher les pires artefacts pendant le tournage que de les corriger en post-traitement, nous avons essayé de garder les personnes et les choses loin de la caméra dans l’espoir d’éliminer la nécessité de coudre des objets en gros plan. Maintenir une grande clairière autour de notre appareil photo a probablement été l’un des plus grands défis que nous avons eu pendant le tournage et nous avons dû faire preuve de créativité pour que cela fonctionne. Travailler avec des guides locaux a été d’une grande aide dans la gestion de la foule, mais nous avons également constaté que l’utilisation de panneaux ( et parfois de petits cônes ou des sacs de haricots) pour marquer notre espace de tournage était relativement efficace, d’autant plus que nous n’avions besoin que d’obtenir une petite quantité de séquences à chaque emplacement. Souvent, la meilleure façon d’obtenir une bonne capture était d’arriver très tôt le matin, avant que la plupart des gens se présentent.
D’autres techniques de capture utiles proviennent directement des pratiques traditionnelles du film. Par exemple, nous avons utilisé une correction de couleur carte sur tous nos appareils photo et des photos de référence capturées de textures et d’objets dont nous pourrions avoir besoin ultérieurement.
Une coupe rugueuse d’images de Pantheon avant la couture.
Traitement de la vidéo
La capture de contenu à 360° n’est que la première étape. Un traitement important est nécessaire pour convertir les images brutes de l’appareil photo que nous avons capturées en ressources finales que vous voyez dans HoloTour. Une fois de retour à la maison, nous avions besoin de prendre la vidéo de 14 flux de caméra différents et de la transformer en une seule vidéo continue avec un minimum d’artefacts. Notre équipe artistique a utilisé un certain nombre d’outils pour combiner et peaufiner les images capturées et nous avons développé un pipeline pour optimiser le traitement autant que possible. Les images devaient être cousues ensemble, corrigées en couleur, puis composites pour supprimer les éléments et artefacts distrayants ou pour ajouter des poches supplémentaires de vie et de mouvement, le tout dans le but d’améliorer ce sentiment d’être réellement là.
Une coupe rugueuse d’images de Pantheon avant la couture.
Pour assembler les vidéos, nous avons utilisé un outil appelé PTGui et l’avons intégré à notre pipeline de traitement. Dans le cadre du post-traitement, nous avons extrait des images fixes de nos vidéos et trouvé un motif de couture qui semblait bon pour l’une de ces images. Nous avons ensuite appliqué ce modèle à un plug-in personnalisé que nous avons écrit qui a permis à nos artistes vidéo d’affiner et d’ajuster le modèle de couture directement lors de la composition dans After Effects.
Capture d’écran de PTGui montrant les images de Pantheon cousues.
Lecture de vidéo
Une fois le traitement du film terminé, nous disposons d’une vidéo fluide, mais elle est extraordinairement grande, autour d’une résolution de 8K. Le décodage de la vidéo est coûteux et il y a très peu d’ordinateurs capables de gérer une vidéo 8K, donc le prochain défi a été de trouver un moyen de lire cette vidéo sur HoloLens. Nous avons développé un certain nombre de stratégies pour éviter le coût du décodage tout en faisant en sorte que l’utilisateur ait l’impression qu’il visionnait l’intégralité de la vidéo.
L’optimisation la plus simple consiste à éviter le décodage de parties de la vidéo qui ne changent pas beaucoup. Nous avons écrit un outil pour identifier les zones de chaque scène qui ont peu ou pas de mouvement. Pour ces régions, nous montrons une image statique au lieu de décoder une vidéo chaque image. Pour rendre cela possible, nous avons divisé la vidéo massive en segments beaucoup plus petits.
Nous nous sommes également assurés que chaque pixel que nous avons décodé était utilisé le plus efficacement. Nous avons expérimenté des techniques de compression pour réduire la taille de la vidéo ; nous fractionnons les régions vidéo en fonction des polygones de la géométrie sur laquelle elle serait projetée ; nous avons ajusté les UVs et reconditionné les vidéos en fonction de la quantité de détails des différents polygones inclus. Le résultat de ce travail est que ce qui a commencé comme une seule vidéo 8k s’est transformé en de nombreux segments qui semblent presque incompréhensibles jusqu’à ce qu’ils soient correctement re-projetés dans la scène. Pour un développeur de jeux qui comprend le mappage de textures et l’empaquetage UV, cela semblera probablement familier.
Vue complète du panthéon avant les optimisations.
La moitié droite du Panthéon, traitée pour la lecture vidéo.
Exemple de région vidéo unique après l’optimisation et l’empaquetage.
Une autre astuce que nous avons utilisée était d’éviter le décodage de la vidéo que vous ne visionnez pas activement. Dans HoloTour, vous ne pouvez voir qu’une partie de la scène complète à un moment donné. Nous décodons uniquement les vidéos à l’intérieur ou peu de temps en dehors de votre champ de vision (FOV). Lorsque vous faites pivoter votre tête, nous commençons à lire les régions de la vidéo qui sont maintenant dans votre champ de vision et arrêtons la lecture de celles qui ne sont plus dans celle-ci. La plupart des gens ne remarqueront même pas que cela se produit, mais si vous vous tournez rapidement, vous verrez que la vidéo prend une seconde pour démarrer. En attendant, vous verrez une image statique qui revient à la vidéo une fois qu’elle est prête.
Pour que cette stratégie fonctionne, nous avons développé un système de lecture vidéo complet. Nous avons optimisé le code de lecture de bas niveau afin de rendre le basculement vidéo extrêmement efficace. En outre, nous avons dû encoder nos vidéos d’une manière spéciale pour permettre de basculer rapidement vers n’importe quelle vidéo à tout moment. Ce pipeline de lecture a pris beaucoup de temps de développement. Nous l’avons donc implémenté par étapes. Nous avons commencé avec un système plus simple qui était moins efficace, mais qui a permis aux concepteurs et aux artistes de travailler sur l’expérience, et l’a lentement améliorée à un système de lecture plus robuste qui nous a permis d’expédier à la barre de qualité finale. Ce système final avait des outils personnalisés que nous avons créés dans Unity pour configurer la vidéo dans la scène et surveiller le moteur de lecture.
Recréer des objets proches de l’espace en 3D
Les vidéos constituent la majorité de ce que vous voyez dans HoloTour, mais il ya un certain nombre d’objets 3D qui apparaissent près de vous, comme la peinture à La Piazza Navona, la fontaine à l’extérieur du Panthéon, ou la montgolfière dans laquelle vous vous trouvez pour des scènes aériennes. Ces objets 3D sont importants, car la perception de la profondeur humaine est très bonne de près, mais pas très bonne loin. Nous pouvons nous en tirer avec la vidéo au loin, mais pour permettre aux utilisateurs de se promener dans leur espace et de sentir qu’ils sont vraiment là, les objets à proximité ont besoin de profondeur. Cette technique est similaire au genre de chose que vous pourriez voir dans un musée d’histoire naturelle : image d’un diorama qui a des paysages physiques, des plantes et des spécimens d’animaux au premier plan, mais se retire dans une peinture mate intelligemment masquée à l’arrière-plan.
Certains objets sont simplement des ressources 3D que nous avons créées et ajoutées à la scène pour améliorer l’expérience. La peinture et la montgolfière appartiennent à cette catégorie parce qu’ils n’étaient pas présents quand nous avons filmé. Similaires aux ressources de jeu, elles ont été créées par un artiste 3D de notre équipe et correctement texturées. Nous les plaçons dans nos scènes près de l’endroit où vous vous trouvez, et le moteur de jeu peut les restituer sur les deux écrans HoloLens afin qu’ils apparaissent sous la forme d’un objet 3D.
D’autres ressources, comme la fontaine à l’extérieur du Panthéon, sont des objets réels qui existent dans les endroits où nous filmons des vidéos, mais pour faire sortir ces objets de la vidéo et en 3D, nous devons faire un certain nombre de choses.
Tout d’abord, nous avons besoin d’informations supplémentaires sur chaque objet. Sur place pour le tournage, notre équipe a capturé un grand nombre de séquences de référence de ces objets afin que nous ayons suffisamment d’images détaillées pour recréer avec précision les textures. L’équipe a également effectué un balayage de photogrammétrie , qui construit un modèle 3D à partir de dizaines d’images 2D, nous donnant un modèle approximatif de l’objet à une échelle parfaite.
Lorsque nous traitons nos séquences, les objets qui seront remplacés par la suite par une représentation 3D sont supprimés de la vidéo. L’élément 3D est basé sur le modèle de photogrammétrie, mais nettoyé et simplifié par nos artistes. Pour certains objets, nous pouvons utiliser des parties de la vidéo, comme la texture de l’eau sur la fontaine, mais la plupart de la fontaine est maintenant un objet 3D, ce qui permet aux utilisateurs de percevoir la profondeur et de la contourner dans un espace limité dans l’expérience. Le fait d’avoir des objets à proximité de l’espace comme celui-ci ajoute considérablement au sentiment de réalisme et aide à baser les utilisateurs dans l’emplacement virtuel.
Vidéo du panthéon avec la fontaine retirée. Elle sera remplacée par une ressource 3D.
Réflexions finales
De toute évidence, il y avait plus à créer ce contenu que ce que nous avons discuté ici. Il y a quelques scènes – nous aimons les appeler des « perspectives impossibles » – y compris la course en montgolfière et le combat de gladiateurs dans le Colisée, qui a pris une approche plus créative. Nous aborderons ces sujets dans une étude de cas ultérieure.
Nous espérons que le partage de solutions à certains des plus grands défis que nous avons rencontrés pendant la production est utile pour d’autres développeurs et que vous êtes inspiré d’utiliser certaines de ces techniques pour créer vos propres expériences immersives pour HoloLens. (Et si vous le faites, veillez à le partager avec nous sur le forum de développement d’applications HoloLens!)
À propos des auteurs
David Haley est un développeur senior qui a appris plus sur les appareils photo et la lecture vidéo qu’il ne pensait possible en travaillant sur HoloTour. | Danny Askew est un vidéartiste qui a fait en sorte que votre voyage à travers Rome soit aussi impeccable que possible. | ||
Jason Syltebo est un Designer audio qui s’est assuré que vous pouviez découvrir le paysage sonore de chaque destination que vous visitez, même lorsque vous remontez dans le temps. | Travis Steiner est un directeur de la conception qui a recherché et repéré des emplacements, créé des plans de voyage et réalisé des tournages sur place. |