Compartir a través de


Caso práctico: HoloTour

HoloTour para Microsoft HoloLens ofrece recorridos personales en 3D inmersivos por lugares emblemáticos de todo el mundo. A medida que los diseñadores, artistas, productores, diseñadores de audio y desarrolladores que trabajan en este proyecto se enteró, la creación de una representación 3D convincentemente real de una ubicación conocida toma una combinación única de asistente creativa y tecnológica. Este caso práctico le guiará por el proceso de captura y creación del contenido usado para HoloTour.

La tecnología

Con HoloTour, queríamos hacer posible que la gente visitara algunos de los destinos más increíbles del mundo, como las ruinas de Machu Picchu en Perú o la moderna Piazza Navona en Italia, desde sus propias salas de estar. Nuestro equipo lo hizo el objetivo de HoloTour para "hacerte sentir que realmente estás allí". La experiencia tenía que ser algo más que imágenes o vídeos. Al aprovechar la tecnología única de pantalla, seguimiento y audio de HoloLens, creíamos que podíamos transportarte prácticamente a otro lugar. Tendríamos que capturar las vistas, los sonidos y la geometría tridimensional de cada ubicación que visitamos y volver a crearla dentro de nuestra aplicación.

Para ello, necesitábamos un equipo de cámara de 360° con captura de audio direccional. Tenía que capturarse a una resolución extremadamente alta, de modo que el material de archivo tuviera un aspecto nítido cuando se reproduzca en un HoloLens y las cámaras debían colocarse cerca para minimizar los artefactos de costura. Queríamos una cobertura esférica completa, no solo en el horizonte, sino también por encima y por debajo de ti. El equipo también necesitaba ser portátil para poder llevarlo por todo el mundo. Evaluamos las opciones disponibles y nos dimos cuenta de que simplemente no eran lo suficientemente buenas para realizar nuestra visión, ya sea por resolución, costo o tamaño. Si no pudiéramos encontrar un equipo de cámara que satisficiera nuestras necesidades, tendríamos que construir uno nosotros mismos.

Creación de la plataforma

La primera versión, hecha de cartón, Velcro, cinta adhesiva y 14 cámaras GoPro, era algo de lo que MacGyver se habría sentido orgulloso. Después de revisar todo, desde soluciones de gama baja hasta equipos fabricados a medida, las cámaras GoPro fueron en última instancia la mejor opción para nosotros porque eran pequeñas, asequibles y tenían almacenamiento de memoria fácil de usar. El pequeño factor de forma fue especialmente importante porque nos permitió colocar las cámaras bastante cerca— cuanto menor sea la distancia entre cámaras, más pequeñas serán los artefactos de costura. Nuestra disposición única de la cámara nos permitió obtener cobertura de esfera completa más suficiente superposición para alinear las cámaras de forma inteligente y suavizar algunos artefactos durante el proceso de costura.

Aprovechar las funcionalidades de sonido espacial en HoloLens es fundamental para crear una experiencia envolvente convincentemente real. Usamos una matriz de cuatro micrófonos situada debajo de las cámaras del trípode, que capturaba el sonido desde la ubicación de nuestra cámara en cuatro direcciones, proporcionándonos suficiente información para crear sonidos espaciales en nuestras escenas.

Nuestro equipo de cámara de 360° configurado para filmar fuera del Pantheon.

Nuestro equipo de cámara de 360° configurado para filmar fuera del Pantheon.

Probamos nuestro equipo casero llevándolo a Rattlesnake Ridge cerca de Seattle, capturando el paisaje en la parte superior de la caminata. El resultado, aunque significativamente menos pulido que las ubicaciones que se ven en HoloTour hoy en día, nos dio la confianza de que nuestro diseño de plataforma era lo suficientemente bueno como para hacerte sentir que realmente estás allí.

Actualizamos nuestro equipo de Velcro y cartón a una carcasa de cámara impresa en 3D y compramos baterías externas para las cámaras GoPro para simplificar la administración de la batería. A continuación, hicimos una prueba más extensa, viajando hasta San Francisco para crear un recorrido en miniatura por la costa de la ciudad y el emblemático puente Golden Gate. Este equipo de cámara es lo que usamos para la mayoría de nuestras capturas de las ubicaciones que visita en HoloTour.

La cámara de 360° filmación en Machu Picchu.

La cámara de 360° filmación en Machu Picchu.

En segundo plano

Antes de filmar, teníamos que averiguar qué ubicaciones queríamos incluir en nuestro tour virtual. Roma fue la primera ubicación que pretendíamos enviar y queríamos hacerlo bien, así que decidimos hacer un viaje de exploración con antelación. Enviamos a un equipo de seis personas ,incluidos artistas, diseñadores y productores, para una visita en persona a los sitios que estábamos considerando. El viaje tardó unos 9 días – 2,5 en viajar, el resto para filmación. (Para Machu Picchu optamos por no hacer un viaje scout, investigando con antelación y reservando unos días de búfer para filmación).

Mientras estaba en Roma, el equipo tomó fotos de cada área y señaló hechos interesantes, así como consideraciones prácticas, como lo difícil que es viajar a cada lugar y lo difícil que sería filmar debido a las multitudes o restricciones. Esto puede parecer unas vacaciones, pero es mucho trabajo. Los días empezaron temprano por la mañana y se irían sin parar hasta la noche. Cada noche, las imágenes se cargan para que el equipo vuelva a Seattle a revisar.

Nuestro equipo de capturas en Roma.

Nuestro equipo de capturas en Roma.

Una vez completado el viaje scout, se hizo un plan final para la filmación real. Esto requería una lista detallada de dónde íbamos a filmar, en qué día y a qué hora. Cada día en el extranjero es caro, por lo que estos viajes necesitaban ser eficientes. Reservamos guías y controladores en Roma para ayudarnos y utilizarse completamente todos los días desde antes del amanecer hasta después de la puesta del sol. Necesitamos obtener las mejores imágenes posibles para que sientas que estás realmente ahí.

Captura del vídeo

Hacer algunas cosas sencillas durante la captura puede facilitar mucho el procesamiento posterior. Por ejemplo, cada vez que coses imágenes de varias cámaras, terminas con artefactos visuales porque cada cámara tiene una vista ligeramente diferente. Cuantos más cerca estén los objetos de la cámara, mayor será la diferencia entre las vistas y más grandes serán los artefactos de costura. Esta es una manera fácil de visualizar el problema: mantén el pulgar hacia arriba frente a tu cara y míralo con un solo ojo. Ahora cambia de ojos. Verá que el pulgar parece moverse en relación con el fondo. Si mantienes el pulgar más lejos de tu cara y repites el experimento, parecerá que el pulgar se mueve menos. Ese movimiento aparente es similar al problema de costura al que nos enfrentamos: Tus ojos, como nuestras cámaras, no ven exactamente la misma imagen porque están separados por una pequeña distancia.

Dado que es mucho más fácil evitar los peores artefactos durante la filmación que corregirlos en el posprocesamiento, intentamos mantener a las personas y las cosas lejos de la cámara con la esperanza de poder eliminar la necesidad de unir objetos de primer plano. Mantener un gran claro alrededor de nuestra cámara fue probablemente uno de los mayores desafíos que tuvimos durante el rodaje y tuvimos que ser creativos para que funcionara. Trabajar con guías locales fue una gran ayuda en la gestión de multitudes, pero también descubrimos que el uso de señales (y a veces pequeños conos o bolsas de frijol) para marcar nuestro espacio de filmación era razonablemente eficaz, especialmente porque solo necesitábamos obtener una pequeña cantidad de material en cada ubicación. A menudo, la mejor manera de obtener una buena captura era llegar muy temprano por la mañana, antes de que la mayoría de las personas aparecieron.

Algunas otras técnicas de captura útiles proceden directamente de las prácticas cinematográficas tradicionales. Por ejemplo, usamos una tarjeta de corrección de color en todas nuestras cámaras y capturamos fotos de referencia de texturas y objetos que podríamos necesitar más adelante.

Un corte áspero de Machu Picchu que muestra la tarjeta de corrección de color.

Un corte áspero de imágenes de Pantheon antes de cosido.

Procesamiento del vídeo

Capturar contenido de 360° es solo el primer paso: se necesita una gran cantidad de procesamiento para convertir el material de archivo de cámara sin procesar que capturamos en los recursos finales que ves en HoloTour. Una vez que estábamos en casa, necesitábamos tomar el vídeo de 14 fuentes de cámara diferentes y convertirlo en un único vídeo continuo con artefactos mínimos. Nuestro equipo de arte usó una serie de herramientas para combinar y pulir las imágenes capturadas y desarrollamos una canalización para optimizar el procesamiento tanto como sea posible. Las imágenes tenían que ser cosidas, corregidas de color, y luego compuestas para eliminar elementos y artefactos distraídos o para agregar bolsillos complementarios de vida y movimiento, todo con el objetivo de mejorar esa sensación de estar realmente allí.

Un corte áspero de imágenes de Pantheon antes de cosido.

Un corte áspero de imágenes de Pantheon antes de cosido.

Para unir los vídeos, usamos una herramienta denominada PTGui y la integramos en nuestra canalización de procesamiento. Como parte del posprocesamiento extraimos fotogramas de nuestros vídeos y encontramos un patrón de costura que se veía bien para uno de esos fotogramas. A continuación, aplicamos ese patrón a un complemento personalizado que escribimos que permitió a nuestros artistas de vídeo ajustar y ajustar el patrón de costura directamente mientras compuso en After Effects.

Captura de pantalla de PTGui que muestra las imágenes de Pantheon cosidas.

Captura de pantalla de PTGui que muestra las imágenes de Pantheon cosidas.

Video playback

Una vez completado el procesamiento del material de archivo, tenemos un vídeo sin problemas, pero es extraordinariamente grande, alrededor de 8K de resolución. Descodificar vídeo es caro y hay muy pocos equipos que pueden controlar un vídeo de 8K, por lo que el siguiente desafío era encontrar una manera de reproducir este vídeo en HoloLens. Hemos desarrollado una serie de estrategias para evitar el costo de la descodificación y, al mismo tiempo, hacer que el usuario sienta que estaba viendo todo el vídeo.

La optimización más fácil es evitar la descodificación de partes del vídeo que no cambian mucho. Escribimos una herramienta para identificar las áreas de cada escena que tienen poco o ningún movimiento. Para esas regiones se muestra una imagen estática en lugar de descodificar un vídeo cada fotograma. Para que esto sea posible, dividimos el vídeo masivo en fragmentos mucho más pequeños.

También nos aseguramos de que todos los píxeles que descodificamos se usaron de la manera más eficaz. Experimentamos con técnicas de compresión para reducir el tamaño del vídeo; dividimos las regiones de vídeo según los polígonos de la geometría en la que se proyectaría; ajustamos las VV y reempaquetamos los vídeos en función de la cantidad de detalles de los distintos polígonos incluidos. El resultado de este trabajo es que lo que comenzó como un solo vídeo de 8 k se convirtió en muchos fragmentos que parecen casi ininteligibles hasta que se vuelven a proyectar correctamente en la escena. Para un desarrollador de juegos que comprenda la asignación de texturas y el empaquetado UV, esto probablemente le resultará familiar.

Una vista completa del Pantheon antes de las optimizaciones.

Una vista completa del Pantheon antes de las optimizaciones.

La mitad derecha del Pantheon, procesada para la reproducción de vídeo.

La mitad derecha del Pantheon, procesada para la reproducción de vídeo.

Ejemplo de una sola región de vídeo después de la optimización y el empaquetado.

Ejemplo de una sola región de vídeo después de la optimización y el empaquetado.

Otro truco que usamos era evitar la descodificación de vídeo que no estás viendo activamente. Mientras esté en HoloTour, solo podrá ver parte de la escena completa en un momento dado. Solo descodificamos vídeos dentro o poco fuera de su campo de visión (FOV). A medida que giras la cabeza, comenzamos a reproducir las regiones del vídeo que ahora están en tu FOV y dejamos de reproducir las que ya no están dentro de él. La mayoría de la gente ni siquiera se dará cuenta de que esto está sucediendo, pero si se da la vuelta rápidamente, verá que el vídeo tarda un segundo en empezar; mientras tanto, verá una imagen estática que, a continuación, vuelve a aparecer en el vídeo una vez que esté listo.

Para que esta estrategia funcione desarrollamos un amplio sistema de reproducción de vídeo. Hemos optimizado el código de reproducción de bajo nivel para que el cambio de vídeo sea extremadamente eficiente. Además, tuvimos que codificar nuestros vídeos de una manera especial para que sea posible cambiar rápidamente a cualquier vídeo en cualquier momento. Esta canalización de reproducción tardó una cantidad significativa de tiempo de desarrollo, por lo que la implementamos en fases. Comenzamos con un sistema más sencillo que era menos eficiente, pero que permitía a los diseñadores y artistas trabajar en la experiencia, y lo mejoramos lentamente a un sistema de reproducción más sólido que nos permitió enviar en la barra de calidad final. Este sistema final tenía herramientas personalizadas que creamos en Unity para configurar el vídeo dentro de la escena y supervisar el motor de reproducción.

Recreación de objetos casi espaciales en 3D

Los vídeos constituyen la mayoría de lo que ves en HoloTour, pero hay una serie de objetos 3D que aparecen cerca de ti, como la pintura en la Piazza Navona, la fuente fuera del Panteón o el globo de aire caliente en el que te encuentras para escenas aéreas. Estos objetos 3D son importantes porque la percepción de la profundidad humana es muy buena de cerca, pero no muy buena lejos. Podemos salir con el vídeo a distancia, pero para permitir que los usuarios caminen por su espacio y sientan que realmente están allí, los objetos cercanos necesitan profundidad. Esta técnica es similar al tipo de cosas que se pueden ver en un museo de historia natural: imagen de un diorama que tiene paisajismo físico, plantas y especímenes de animales en primer plano, pero retrocede en una pintura mate ingeniosamente enmascarada en el fondo.

Algunos objetos son simplemente recursos 3D que creamos y agregamos a la escena para mejorar la experiencia. La pintura y el globo de aire caliente entran en esta categoría porque no estaban presentes cuando filmamos. De forma similar a los recursos del juego, fueron creados por un artista 3D en nuestro equipo y texturados adecuadamente. Las colocamos en nuestras escenas cerca de donde te encuentras, y el motor del juego puede representarlas en las dos pantallas de HoloLens para que aparezcan como un objeto 3D.

Otros recursos, como la fuente fuera del Pantheon, son objetos reales que existen en las ubicaciones donde estamos grabando vídeo, pero para sacar estos objetos del vídeo y en 3D, tenemos que hacer una serie de cosas.

En primer lugar, necesitamos información adicional sobre cada objeto. Mientras se encuentra en la ubicación para filmar, nuestro equipo capturó una gran cantidad de imágenes de referencia de estos objetos para que tengamos suficientes imágenes detalladas para recrear con precisión las texturas. El equipo también realizó un examen de fotogrametría , que construye un modelo 3D a partir de docenas de imágenes 2D, lo que nos da un modelo aproximado del objeto a escala perfecta.

A medida que procesamos nuestro material de archivo, los objetos que se reemplazarán más adelante por una representación 3D se quitan del vídeo. El recurso 3D se basa en el modelo de fotogrametría, pero limpiado y simplificado por nuestros artistas. Para algunos objetos, podemos usar partes del vídeo, como la textura del agua en la fuente, pero la mayoría de la fuente es ahora un objeto 3D, lo que permite a los usuarios percibir la profundidad y caminar alrededor de ella en un espacio limitado en la experiencia. Tener objetos casi espaciales como este aumenta considerablemente la sensación de realismo y ayuda a colocar a los usuarios en la ubicación virtual.

Imágenes del panteón con la fuente quitada. Se reemplazará por un recurso 3D.

Imágenes del panteón con la fuente quitada. Se reemplazará por un recurso 3D.

Pensamientos finales

Obviamente, la creación de este contenido era más importante que lo que hemos hablado aquí. Hay algunas escenas ,que nos gusta llamar "perspectivas imposibles", incluyendo el paseo en globo aerostático y la pelea de gladiadores en el Coliseo, que tomó un enfoque más creativo. Abordaremos esto en un caso práctico futuro.

Esperamos que compartir soluciones a algunos de los desafíos más grandes que tuvimos durante la producción sea útil para otros desarrolladores y que esté inspirado en usar algunas de estas técnicas para crear sus propias experiencias inmersivas para HoloLens. (Y si lo hace, asegúrese de compartirlo con nosotros en el foro de desarrollo de aplicaciones de HoloLens).

Acerca de los autores

David Haley David Haley es un desarrollador sénior que aprendió más sobre los equipos de cámara y la reproducción de vídeo de lo que creía posible al trabajar en HoloTour. Danny Askew Danny Askew es un artista de vídeo que se aseguró de que su viaje por Roma fuera lo más impecable posible.
Jason Syltebo Jason Syltebo es un audio Designer que se aseguró de que podía experimentar el paisaje sonoro de cada destino que visita, incluso cuando se vuelve en el tiempo. Travis Steiner Travis Steiner es un director de diseño que investió y es scoutó ubicaciones, creó planes de viaje y dirigió filmación en el sitio.

Vea también