Estudo de caso - HoloTour

HoloTour para Microsoft HoloLens oferece passeios pessoais imersivos em 3D de locais icónicos em todo o mundo. Como os designers, artistas, produtores, designers de áudio e desenvolvedores que trabalham neste projeto descobriram, criar uma renderização 3D convincentemente real de um local bem conhecido requer uma mistura única de magia criativa e tecnológica. Este estudo de caso irá percorrer o processo de captura e criação do conteúdo utilizado para o HoloTour.

A tecnologia

Com o HoloTour, quisemos tornar possível que as pessoas visitassem alguns dos destinos mais incríveis do mundo - como as ruínas de Machu Picchu no Peru ou a moderna Piazza Navona, na Itália , desde as suas próprias salas de estar. A nossa equipa fez com que o objetivo da HoloTour "te fizesse sentir que estás mesmo lá". A experiência precisava de ser mais do que apenas imagens ou vídeos. Aproveitando a tecnologia única de ecrã, rastreio e áudio de HoloLens acreditámos que poderíamos virtualmente transportá-lo para outro lugar. Precisaríamos capturar as vistas, sons e geometria tridimensional de todos os locais que visitamos e, em seguida, recriar isso dentro da nossa app.

Para isso, precisávamos de uma câmara de 360° com captação de áudio direcional. Precisava de ser capturado em resolução extremamente alta, para que as imagens ficassem nítidas quando reproduzidas num HoloLens e as câmaras teriam de ser posicionadas juntas para minimizar os artefactos de costura. Queríamos cobertura esférica completa, não só ao longo do horizonte, mas acima e abaixo de si também. A plataforma também precisava de ser portátil para que pudéssemos levá-la para todo o mundo. Avaliámos as opções disponíveis fora da prateleira e percebemos que simplesmente não eram boas o suficiente para concretizar a nossa visão – seja por causa da resolução, custo ou tamanho. Se não conseguíssemos encontrar uma câmara que satisfizesse as nossas necessidades, teríamos de ser nós a construir uma.

Construindo a plataforma

A primeira versão - feita a partir de cartão, velcro, fita adesiva e 14 câmaras GoPro - era algo de que MacGyver teria ficado orgulhoso. Depois de rever tudo, desde soluções low-end até plataformas fabricadas personalizadas, as câmaras GoPro acabaram por ser a melhor opção para nós porque eram pequenas, acessíveis e tinham fácil armazenamento de memória. O pequeno fator de forma foi especialmente importante porque nos permitiu colocar as câmaras bastante próximas umas das outras — quanto menor a distância entre as câmaras, menor será a costura dos artefactos. O nosso arranjo exclusivo de câmaras permitiu-nos obter cobertura de esfera completa mais uma sobreposição suficiente para alinhar inteligentemente as câmaras e suavizar alguns artefactos durante o processo de costura.

Tirar partido das capacidades de som espacial no HoloLens é fundamental para criar uma experiência imersiva convincentemente real. Usamos uma matriz de quatro microfones situada sob as câmaras do tripé, que captaria som da localização da nossa câmara em quatro direções, dando-nos informações suficientes para criar sons espaciais nas nossas cenas.

A nossa câmara 360° foi preparada para filmar fora do Panteão.

A nossa câmara 360° foi preparada para filmar fora do Panteão.

Testámos a nossa plataforma caseira levando-a para Rattlesnake Ridge, perto de Seattle, capturando a paisagem no topo da caminhada. O resultado, embora significativamente menos polido do que as localizações que vê hoje no HoloTour, deu-nos confiança de que o nosso design de plataforma era bom o suficiente para te fazer sentir realmente lá.

Atualizámos a nossa plataforma de velcro e cartão para uma caixa de câmara impressa em 3D e comprámos baterias externas para as câmaras GoPro para simplificar a gestão da bateria. Fizemos então um teste mais extenso, viajando até São Francisco para criar um tour em miniatura da costa da cidade e da icónica ponte Golden Gate. Esta plataforma de câmara é o que usamos para a maioria das nossas capturas dos locais que visita no HoloTour.

A câmara 360° filmada em Machu Picchu.

A câmara 360° filmada em Machu Picchu.

Nos bastidores

Antes de filmar, precisávamos descobrir quais os locais que queríamos incluir na nossa visita virtual. Roma foi o primeiro local que pretendíamos enviar e queríamos acertar, então decidimos fazer uma viagem de reconhecimento com antecedência. Enviámos uma equipa de seis pessoas , incluindo artistas, designers e produtores, para uma visita presencial aos sites que estávamos a considerar. A viagem demorou cerca de 9 dias – 2,5 para viajar, o resto para filmagens. (Para Machu Picchu optámos por não fazer uma viagem de reconhecimento, pesquisando antecipadamente e reservando alguns dias de tampão para as filmagens.)

Enquanto esteve em Roma, a equipa tirou fotos de cada área e observou factos interessantes, bem como considerações práticas, como o quão difícil é viajar para cada local e como seria difícil filmar devido a multidões ou restrições. Pode parecer umas férias, mas dá muito trabalho. Os dias começaram de manhã cedo e não paravam até à noite. Todas as noites, as filmagens eram enviadas para a equipa de Seattle para rever.

A nossa equipa de captura em Roma.

A nossa equipa de captura em Roma.

Após a viagem de escuteiro ter sido concluída, foi feito um plano final para as filmagens reais. Isto requer uma lista detalhada de onde íamos filmar, em que dia, e a que horas. Todos os dias no exterior são caros, por isso estas viagens precisavam de ser eficientes. Reservamos guias e manipuladores em Roma para nos ajudar e totalmente usados todos os dias desde antes do nascer do sol até ao pôr-do-sol. Precisamos de obter as melhores filmagens possíveis para que sintas que estás mesmo lá.

Capturando o vídeo

Fazer algumas coisas simples durante a captura pode tornar o pós-processamento muito mais fácil. Por exemplo, sempre que juntas imagens de várias câmaras, acabas por ter artefactos visuais porque cada câmara tem uma visão ligeiramente diferente. Quanto mais perto estiverem os objetos da câmara, maior será a diferença entre as vistas e quanto maior for a costura dos artefactos. Aqui está uma maneira fácil de visualizar o problema: levante o polegar na frente do rosto e olhe-o com apenas um olho. Agora mude de olho. Verá que o seu polegar parece mover-se em relação ao fundo. Se segurar o polegar mais longe do rosto e repetir a experiência, o polegar parece mover-se menos. Esse movimento aparente é semelhante ao problema de costura que enfrentámos: os teus olhos, tal como as nossas câmaras, não vêem exatamente a mesma imagem porque estão separados por uma pequena distância.

Porque é muito mais fácil prevenir os piores artefactos durante as filmagens do que corrigi-los no pós-processamento, tentamos manter as pessoas e as coisas longe da câmara na esperança de eliminarmos a necessidade de coser objetos de perto. Manter uma grande clareira à volta da nossa câmara foi provavelmente um dos maiores desafios que tivemos durante as filmagens e tivemos de ser criativos para que resultasse. Trabalhar com guias locais foi uma grande ajuda na gestão de multidões, mas também descobrimos que usar sinais — e às vezes pequenos cones ou sacos de feijão — para marcar o nosso espaço de filmagem era razoavelmente eficaz, especialmente porque só precisávamos de obter uma pequena quantidade de imagens em cada local. Muitas vezes, a melhor maneira de conseguir uma boa captura era chegar muito cedo de manhã, antes que a maioria das pessoas aparecesse.

Algumas outras técnicas de captura úteis vêm diretamente das práticas cinematográficas tradicionais. Por exemplo, usamos um cartão de correção de cores em todas as nossas câmaras e capturámos fotos de referência de texturas e objetos que poderíamos precisar mais tarde.

Um corte áspero de Machu Picchu mostrando o cartão de correção de cores.

Um corte áspero das filmagens do Panteão antes de costurar.

Processamento do vídeo

Capturar conteúdo de 360° é apenas o primeiro passo - muito processamento é necessário para converter as imagens de câmaras brutas que capturámos nos ativos finais que vemos no HoloTour. Assim que voltássemos para casa, precisávamos de tirar o vídeo de 14 câmaras diferentes e transformá-lo num único vídeo contínuo com artefactos mínimos. A nossa equipa de arte usou uma série de ferramentas para combinar e polir as imagens capturadas e desenvolvemos um oleoduto para otimizar o processamento o máximo possível. As imagens tiveram de ser costuradas juntas, corrigidas de cor, e depois compostas para remover elementos e artefactos distraídos ou para adicionar bolsos suplementares de vida e movimento, tudo com o objetivo de realçar essa sensação de realmente estar lá.

Um corte áspero das filmagens do Panteão antes de costurar.

Um corte áspero das filmagens do Panteão antes de costurar.

Para coser os vídeos juntos, usamos uma ferramenta chamada PTGui e integrámo-la no nosso pipeline de processamento. Como parte do pós-processamento, extraímos quadros ainda dos nossos vídeos e encontramos um padrão de costura que parecia bom para um desses quadros. Em seguida, aplicou esse padrão a um plugin personalizado que escrevemos que permitiu aos nossos artistas de vídeo afinar e ajustar o padrão de costura diretamente enquanto composição em After Effects.

Imagem de PTGui mostrando as imagens do Panteão costurada.

Imagem de PTGui mostrando as imagens do Panteão costurada.

Reproduzir vídeo

Após o processamento das imagens ser concluído, temos um vídeo sem emenda, mas é extraordinariamente grande - cerca de 8K resolução. O vídeo de descodição é caro e há muito poucos computadores que conseguem lidar com um vídeo em 8K, por isso o próximo desafio foi encontrar uma maneira de reproduzir este vídeo no HoloLens. Desenvolvemos uma série de estratégias para evitar o custo da descodição, enquanto ainda faz o utilizador sentir que estava a ver todo o vídeo.

A otimização mais fácil é evitar a descodição de partes do vídeo que não mudam muito. Escrevemos uma ferramenta para identificar áreas em cada cena que têm pouco ou nenhum movimento. Para essas regiões mostramos uma imagem estática em vez de descodi um vídeo em cada frame. Para tornar isto possível, dividimos o vídeo maciço em pedaços muito menores.

Também garantimos que cada pixel que descodificámos era usado de forma mais eficaz. Experimentámos técnicas de compressão para diminuir o tamanho do vídeo; dividimos as regiões de vídeo de acordo com os polígonos da geometria em que seria projetado; ajustamos uVs e reembalamos os vídeos com base na quantidade de detalhes que diferentes polígonos incluídos. O resultado deste trabalho é que o que começou como um único vídeo de 8k transformou-se em muitos pedaços que parecem quase ininteligíveis até serem devidamente re-projetados para a cena. Para um desenvolvedor de jogos que entende o mapeamento de textura e embalagem UV, isso provavelmente vai parecer familiar.

Uma visão completa do Panteão antes das otimizações.

Uma visão completa do Panteão antes das otimizações.

A metade direita do Panteão, processada para reprodução de vídeo.

A metade direita do Panteão, processada para reprodução de vídeo.

Exemplo de uma única região de vídeo após otimização e embalagem.

Exemplo de uma única região de vídeo após otimização e embalagem.

Outro truque que usámos foi evitar descodição de vídeo que não estás a ver ativamente. Enquanto estiver no HoloTour, só pode ver parte da cena completa a qualquer momento. Só descodificamos vídeos dentro ou em breve fora do seu campo de visão (FOV). À medida que giras a cabeça, começamos a reproduzir as regiões do vídeo que estão agora no teu FOV e paramos de jogar aquelas que já não estão dentro dele. A maioria das pessoas nem vai notar que isto está a acontecer, mas se voltares rapidamente, verás que o vídeo demora um segundo a começar, entretanto vais ver uma imagem estática que depois volta a ser vídeo quando estiver pronta.

Para que esta estratégia resultasse, desenvolvemos um extenso sistema de reprodução de vídeo. Otimizámos o código de reprodução de baixo nível para tornar a comutação de vídeo extremamente eficiente. Além disso, tivemos de codificar os nossos vídeos de uma forma especial para que fosse possível mudar rapidamente para qualquer vídeo a qualquer momento. Este gasoduto de reprodução demorou muito tempo de desenvolvimento, por isso implementámo-lo por etapas. Começámos com um sistema mais simples, menos eficiente, mas que permitiu que designers e artistas trabalhassem na experiência, e lentamente melhorá-lo para um sistema de reprodução mais robusto que nos permitiu enviar na barra de qualidade final. Este sistema final tinha ferramentas personalizadas que criámos dentro da Unidade para configurar o vídeo dentro da cena e monitorizar o motor de reprodução.

Recriando objetos de quase-espaço em 3D

Os vídeos compõem a maior parte do que se vê no HoloTour, mas há uma série de objetos 3D que aparecem perto de si, como a pintura na Piazza Navona, a fonte fora do Panteão, ou o balão de ar quente em que se destaca para cenas aéreas. Estes objetos 3D são importantes porque a perceção da profundidade humana é muito boa de perto, mas não muito boa longe. Podemos safar-nos com o vídeo à distância, mas para permitir que os utilizadores andem pelo seu espaço e sintam que estão realmente lá, os objetos próximos precisam de profundidade. Esta técnica é semelhante ao tipo de coisa que se pode ver num museu de história natural — imagine um diorama que tem paisagismo físico, plantas e espécimes animais em primeiro plano, mas recua para uma pintura mate inteligentemente mascarada ao fundo.

Alguns objetos são simplesmente ativos 3D que criamos e adicionamos à cena para melhorar a experiência. A pintura e o balão de ar quente caem nesta categoria porque não estavam presentes quando filmámos. Semelhantes aos ativos do jogo, foram criados por um artista 3D na nossa equipa e texturizados adequadamente. Colocamos isto nas nossas cenas perto de onde estás, e o motor de jogo pode torná-los nos dois HoloLens exibe para que apareçam como um objeto 3D.

Outros bens, como a fonte fora do Panteão, são objetos reais que existem nos locais onde estamos filmando vídeo, mas para trazer estes objetos para fora do vídeo e para o 3D, temos que fazer uma série de coisas.

Primeiro, precisamos de informações adicionais sobre cada objeto. Enquanto estamos no local para filmar, a nossa equipa captou muitas imagens de referência destes objetos para que pudéssemos ter imagens detalhadas suficientes para recriar com precisão as texturas. A equipa também realizou uma digitalização de fotogrammetria, que constrói um modelo 3D a partir de dezenas de imagens 2D, dando-nos um modelo áspero do objeto em perfeita escala.

À medida que processamos as nossas imagens, os objetos que serão posteriormente substituídos por uma representação 3D são removidos do vídeo. O ativo 3D baseia-se no modelo de fotogrammetria mas limpo e simplificado pelos nossos artistas. Para alguns objetos, podemos usar partes do vídeo - como a textura da água na fonte - mas a maior parte da fonte é agora um objeto 3D, que permite aos utilizadores perceber a profundidade e andar ao seu redor em um espaço limitado na experiência. Ter objetos quase espaciais como este aumenta muito a sensação de realismo e ajuda a aterrar os utilizadores na localização virtual.

Imagens do Panteão com a fonte removida. Será substituído por um ativo 3D.

Imagens do Panteão com a fonte removida. Será substituído por um ativo 3D.

Pensamentos finais

Obviamente, havia mais para criar este conteúdo do que o que discutimos aqui. Há algumas cenas — gostamos de chamá-las de "perspetivas impossíveis" — incluindo o passeio de balão de ar quente e a luta de gladiadores no Coliseu, que tomou uma abordagem mais criativa. Vamos abordar isto num futuro estudo de caso.

Esperamos que a partilha de soluções para alguns dos maiores desafios que tivemos durante a produção seja útil para outros desenvolvedores e que você esteja inspirado a usar algumas destas técnicas para criar suas próprias experiências imersivas para HoloLens. (E se o fizer, por favor, certifique-se de partilhá-lo conosco no fórum de desenvolvimento de aplicações HoloLens!)

Sobre os autores

David Haley David Haley é um Desenvolvedor Sénior que aprendeu mais sobre plataformas de câmaras e reprodução de vídeo do que pensava ser possível ao trabalhar no HoloTour. Danny Askew Danny Askew é um artista de vídeo que garantiu que a sua viagem por Roma foi o mais impecável possível.
Jason Syltebo Jason Syltebo é um Designer de Áudio que se certificou de que poderia experimentar a paisagem sonora de todos os destinos que visita, mesmo quando se volta no tempo. Travis Steiner Travis Steiner é um Diretor de Design que pesquisava e explorava locais, criava planos de viagem e dirigia as filmagens no local.

Ver também