Partager via


É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, artistes, producteurs, concepteurs audio et développeurs travaillant sur ce projet, la création d’un rendu 3D d’un lieu bien connu prend un mélange unique de créativité et de technologie. Cette étude de cas vous guidera 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 du Machu Picchu au Pérou ou la Piazza Navona moderne en Italie, directement à partir de leur propre salon. Notre équipe a fait de l’HoloTour l’objectif de « vous donner l’impression d’être vraiment là ». L’expérience devait être plus qu’une simple image ou vidéo. En tirant parti de la technologie unique d’affichage, de suivi et d’audio d’HoloLens, nous avons pensé que nous pouvions virtuellement vous transporter vers un autre endroit. Nous devons capturer les vues, les sons et la géométrie en trois dimensions de chaque emplacement que nous avons visité, puis recréer cela dans notre application.

Pour ce faire, nous avions besoin d’une plate-forme de caméra 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 de près les unes avec les autres afin de minimiser les artefacts de couture. Nous voulions une couverture sphérique complète, non seulement le long de l’horizon, mais aussi au-dessus et en 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 nous sommes rendu compte qu’elles n’étaient tout simplement pas suffisantes 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 une plate-forme de caméra qui répond à nos besoins, nous devrions en créer un nous-mêmes.

Création de la plate-forme

La première version, fabriquée à partir de carton, velcro, ruban adhésif et 14 caméras GoPro, était quelque chose dont MacGyver aurait été fier. Après avoir passé en revue tout, des solutions bas de terminaison aux plates-formes fabriquées sur mesure, les caméras GoPro étaient finalement 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 permettait 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 complète de la sphère plus suffisamment de chevauchement pour aligner intelligemment les caméras et lisser certains artefacts pendant le processus de couture.

Il est essentiel de tirer parti des fonctionnalités sonores spatiales sur HoloLens 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é mis en place pour filmer à l’extérieur du Pantheon.

Notre appareil photo 360° a été mis en place pour filmer à l’extérieur du Pantheon.

Nous avons testé notre plate-forme maison en l’emportant jusqu’à Rattlesnake Ridge près de Seattle, capturant le paysage au sommet de la randonnée. Le résultat, bien que nettement moins soigné que les emplacements que vous voyez dans HoloTour aujourd’hui, nous a donné l’assurance que notre conception de la plate-forme était assez bonne pour vous faire sentir comme vous y êtes vraiment.

Nous avons mis à niveau notre plate-forme de Velcro et carton à un boîtier d’appareil photo imprimé en 3D et acheté des batteries externes pour les caméras GoPro afin de simplifier la gestion de la batterie. Nous avons ensuite fait un test plus approfondi, en descendant à San Francisco pour créer une visite miniature de la côte de la ville et du pont emblématique du Golden Gate. Cette plate-forme de caméra est ce que nous avons utilisé pour la plupart de nos captures des emplacements que vous visitez dans HoloTour.

La caméra 360° plate-forme filmant à Machu Picchu.

La caméra 360° plate-forme filmant à Machu Picchu.

En coulisses

Avant de filmer, nous avions besoin de déterminer les lieux que nous voulions inclure dans notre visite virtuelle. Rome était le premier endroit que nous avions l’intention d’expédier et nous voulions obtenir le droit, donc nous avons décidé de faire un voyage scout à l’avance. Nous avons envoyé une équipe de six personnes, y compris 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 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.)

Pendant son séjour à 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 rendre à chaque endroit et la difficulté de filmer en raison de la foule ou des restrictions. Cela peut sembler être des vacances, mais c’est beaucoup de travail. Les journées commençaient tôt le matin et se passaient sans arrêt jusqu’au soir. Chaque nuit, des images étaient chargées pour que l’équipe de retour à Seattle examine.

Notre équipe de capture à Rome.

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, de 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 la meilleure séquence possible pour que vous vous sentiez comme si vous êtes vraiment là.

Capture de la vidéo

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 importants. Voici un moyen simple de visualiser le problème : tenez votre pouce en face de 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 semble se déplacer moins. 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 parce qu’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 gens et les choses loin de la caméra dans l’espoir de pouvoir éliminer la nécessité de coudre des objets de gros plan. Maintenir une grande clairière autour de notre appareil photo était probablement l’un des plus grands défis que nous avons eu pendant le tournage et nous avons dû faire preuve de créativité pour le faire fonctionner. Travailler avec les guides locaux a été d’une grande aide dans la gestion des foules, 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 raisonnablement efficace, d’autant plus que nous n’avions besoin que d’obtenir une petite quantité de séquences à chaque endroit. 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 arrivent.

D’autres techniques de capture utiles proviennent directement des pratiques cinématographiques traditionnelles. Par exemple, nous avons utilisé une correction de couleur carte sur tous nos appareils photo et capturé des photos de référence de textures et d’objets dont nous pourrions avoir besoin ultérieurement.

Une coupe rugueuse de Machu Picchu montrant la correction de couleur carte.

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 grand nombre de traitement est nécessaire pour convertir les images brutes que nous avons capturées en ressources finales que vous voyez dans HoloTour. Une fois de retour chez nous, 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 de couleur, puis composites pour supprimer les éléments et artefacts gênants ou pour ajouter des poches supplémentaires de vie et de mouvement, le tout dans le but d’améliorer cette sensation d’être réellement là.

Une coupe rugueuse d’images de Pantheon avant la couture.

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 modèle 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 vidé ographiques d’affiner et d’ajuster le modèle de couture directement lors de la composition dans After Effects.

Capture d’écran de PTGui montrant la séquence de Pantheon cousue.

Capture d’écran de PTGui montrant la séquence de Pantheon cousue.

Video playback

Une fois le traitement du métrage terminé, nous avons une vidéo transparente, mais elle est extraordinairement grande, autour de 8K résolution. Le décodage 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 de regarder la vidéo entière.

L’optimisation la plus simple consiste à éviter de décoder les 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 affichons 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 blocs beaucoup plus petits.

Nous nous sommes également assurés que chaque pixel que nous avons décodé était utilisé le plus efficacement possible. 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 elles seraient projetées ; Nous avons ajusté les UVs et repacké 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 de 8k s’est transformé en de nombreux segments qui semblent presque incompréhensibles jusqu’à ce qu’ils soient correctement 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 pantheon avant les optimisations.

Vue complète du pantheon avant les optimisations.

La moitié droite du pantheon, traitée pour la lecture vidéo.

La moitié droite du pantheon, traitée pour la lecture vidéo.

Exemple de région vidéo unique après l’optimisation et l’empaquetage.

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 de décoder 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). Au fur et à mesure que vous faites pivoter votre tête, nous commençons à lire les régions de la vidéo qui sont maintenant dans votre FOV et arrêtons de lire 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 retournez 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é à un système de lecture plus robuste qui nous a permis d’expédier à la barre de qualité finale. Ce système final disposait d’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éation d’objets à espace proche 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 semblent proches de vous, comme la peinture de la Piazza Navona, la fontaine à l’extérieur du Pantheon, ou la montgolfière dans laquelle vous vous trouvez pour les scènes aériennes. Ces objets 3D sont importants, car la perception de 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 se sentir comme s’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 : imaginez un diorama qui a un aménagement physique, des plantes et des spécimens d’animaux au premier plan, mais qui se retire dans une peinture mate habilement 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. Le tableau et la montgolfière appartiennent à cette catégorie parce qu’ils n’étaient pas présents quand nous avons filmé. À l’instar des 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 Pantheon, 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 disposions d’images suffisamment 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.

Au fur et à mesure que nous traitons nos images, les objets qui seront remplacés par une représentation 3D sont supprimés de la vidéo. La ressource 3D est basée sur le modèle de photogrammétrie, mais nettoyée et simplifiée 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 proches 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 de pantheon avec la fontaine supprimée. Il sera remplacé par une ressource 3D.

Vidéo de pantheon avec la fontaine supprimée. Il sera remplacé par une ressource 3D.

Pensées finales

De toute évidence, il y avait plus à créer ce contenu que ce que nous avons abordé ici. Il y a quelques scènes – nous les appelons des « perspectives impossibles », y compris la course en montgolfière et la lutte de gladiateurs dans le Colisée, qui a pris une approche plus créative. Nous aborderons ces points 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 David Haley est un développeur senior qui a appris plus sur les appareils photo et la lecture vidéo qu’il ne le pensait possible en travaillant sur HoloTour. Danny Askew Danny Askew est un artiste vidéo qui a fait en sorte que votre voyage à travers Rome soit aussi impeccable que possible.
Jason Syltebo Jason Syltebo est un Designer audio qui a fait en sorte que vous puissiez découvrir le paysage sonore de chaque destination que vous visitez, même lorsque vous remontez dans le temps. Travis Steiner Travis Steiner est un directeur du design qui a recherché et repéré des lieux, créé des plans de voyage et réalisé des tournages sur place.

Voir aussi