Fallstudie - HoloTour
HoloTour for Microsoft HoloLens erbjuder uppslukande personliga 3D-turer på ikoniska platser runt om i världen. Som designers, konstnärer, producenter, ljuddesigners och utvecklare som arbetar med detta projekt fick reda på, skapar en övertygande verklig 3D-rendering av en välkänd plats tar en unik blandning av kreativa och tekniska guider. Den här fallstudien går igenom processen för att samla in och skapa innehållet som används för HoloTour.
Tekniken
Med HoloTour ville vi göra det möjligt för människor att besöka några av världens mest fantastiska destinationer - som ruinerna av Machu Picchu i Peru eller den moderna Piazza Navona i Italien - direkt från sina egna vardagsrum. Vårt team gjorde det till målet för HoloTour att "få dig att känna att du verkligen är där.". Upplevelsen behövde vara mer än bara bilder eller videor. Genom att utnyttja holoLens unika teknik för visning, spårning och ljud trodde vi att vi praktiskt taget kunde transportera dig till en annan plats. Vi skulle behöva fånga sevärdheter, ljud och tredimensionell geometri på varje plats vi besökte och sedan återskapa det i vår app.
För att göra detta behövde vi en 360° kamerarigg med riktad ljudinspelning. Det behövde fångas med extremt hög upplösning, så att bilderna skulle se skarpa ut när de spelades tillbaka på en HoloLens och kamerorna skulle behöva placeras nära varandra för att minimera stygnartefakterna. Vi ville ha full sfärisk täckning, inte bara längs horisonten, utan även ovanför och under dig. Riggen behövde också vara portabel så att vi kunde ta den över hela världen. Vi utvärderade tillgängliga färdiga alternativ och insåg att de helt enkelt inte var tillräckligt bra för att förverkliga vår vision – antingen på grund av lösning, kostnad eller storlek. Om vi inte kunde hitta en kamerarigg som uppfyllde våra behov, skulle vi behöva bygga en själva.
Bygga riggen
Den första versionen – gjord av kartong, kardborreband, silvertejp och 14 GoPro-kameror – var något som MacGyver skulle ha varit stolt över. Efter att ha granskat allt från avancerade lösningar till anpassade tillverkade riggar var GoPro-kameror i slutändan det bästa alternativet för oss eftersom de var små, prisvärda och hade lätt att använda minneslagring. Den lilla formfaktorn var särskilt viktig eftersom det gjorde det möjligt för oss att placera kameror ganska nära varandra – ju mindre avståndet mellan kamerorna är, desto mindre blir stygnartefakterna. Vårt unika kameraarrangemang gjorde det möjligt för oss att få full sfärtäckning plus tillräckligt med överlappning för att intelligent justera kameror och jämna ut några artefakter under stygnprocessen.
Att dra nytta av de rumsliga ljudfunktionerna på HoloLens är avgörande för att skapa en övertygande verklig uppslukande upplevelse. Vi använde en matris med fyra mikrofoner under kamerorna på stativet, som skulle fånga ljud från vår kameras plats i fyra riktningar, vilket gav oss tillräckligt med information för att skapa rumsliga ljud i våra scener.
Vår 360° kamerarigg inställd för filmning utanför Pantheon.
Vi testade vår hemlagade rigg genom att ta den upp till Rattlesnake Ridge nära Seattle och fånga landskapet på toppen av vandringen. Resultatet, även om det är betydligt mindre polerat än de platser du ser i HoloTour idag, gav oss förtroende för att vår riggdesign var tillräckligt bra för att få dig att känna att du verkligen är där.
Vi uppgraderade vår rigg från kardborreband och kartong till ett 3D-printat kamerahus och köpte externa batteripaket för GoPro-kamerorna för att förenkla batterihanteringen. Vi gjorde sedan ett mer omfattande test och reste ner till San Francisco för att skapa en miniatyrtur på stadens kust och den ikoniska Golden Gate-bron. Denna kamerarigg är vad vi använde för de flesta av våra bilder av de platser du besöker i HoloTour.
Den 360° kamerariggen filmar i Machu Picchu.
I bakgrunden
Innan inspelningen behövde vi ta reda på vilka platser vi ville inkludera på vår virtuella turné. Rom var den första platsen vi tänkte skicka och vi ville få det rätt, så vi bestämde oss för att göra en scoutingresa i förväg. Vi skickade ett team på sex personer, inklusive konstnärer, designers och producenter, för ett personligt besök på de webbplatser vi övervägde. Resan tog cirka 9 dagar - 2,5 för resor, resten för filmning. (För Machu Picchu valde vi att inte göra en scoutresa, forska i förväg och boka några dagars buffert för filmning.)
I Rom tog teamet bilder av varje område och noterade intressanta fakta samt praktiska överväganden, till exempel hur svårt det är att resa till varje plats och hur svårt det skulle vara att filma på grund av folkmassor eller begränsningar. Det här kan låta som en semester, men det är mycket arbete. Dagarna började tidigt på morgonen och skulle gå non-stop fram till kvällen. Varje kväll laddades bilder upp för teamet tillbaka i Seattle att granska.
Vår tillfångatagande besättning i Rom.
När scoutresan var klar gjordes en slutlig plan för faktisk filmning. Detta krävde en detaljerad lista över var vi skulle filma, vilken dag och vid vilken tidpunkt. Varje dag utomlands är dyrt, så dessa resor behövde vara effektiva. Vi bokade guider och hanterare i Rom för att hjälpa oss och fullt ut användas varje dag från före soluppgången till efter solnedgången. Vi måste få bästa möjliga film för att få dig att känna att du verkligen är där.
Fånga videon
Att göra några enkla saker under avbildningen kan göra efterbearbetningen mycket enklare. När du till exempel sy ihop bilder från flera kameror får du visuella artefakter eftersom varje kamera har en något annorlunda vy. Ju närmare objekt är kameran, desto större är skillnaden mellan vyerna och ju större stygnartefakterna blir. Här är ett enkelt sätt att visualisera problemet: håll tummen upp framför ansiktet och titta på det med bara ett öga. Nu växlar ögonen. Du ser att tummen verkar röra sig i förhållande till bakgrunden. Om du håller tummen längre bort från ansiktet och upprepar experimentet verkar tummen röra sig mindre. Den uppenbara rörelsen liknar det stygnproblem vi mötte: Dina ögon, som våra kameror, ser inte exakt samma bild eftersom de separeras med ett litet avstånd.
Eftersom det är mycket lättare att förhindra de värsta artefakterna under inspelningen än att korrigera dem i efterbearbetning, försökte vi hålla människor och saker långt borta från kameran i hopp om att vi kunde eliminera behovet av att sy närbilder. Att underhålla en stor glänta runt vår kamera var förmodligen en av de största utmaningarna vi hade under inspelningen och vi var tvungna att bli kreativa för att få det att fungera. Att arbeta med lokala guider var en stor hjälp för att hantera folkmassor, men vi fann också att använda skyltar - och ibland små koner eller bönpåsar - för att markera vårt filmutrymme var ganska effektivt, särskilt eftersom vi bara behövde få en kort mängd bilder på varje plats. Ofta var det bästa sättet att få en bra fångst att bara komma mycket tidigt på morgonen, innan de flesta dök upp.
Några andra användbara inspelningstekniker kommer direkt från traditionella filmmetoder. Vi använde till exempel ett färgkorrigeringskort på alla våra kameror och tog referensfoton av texturer och objekt som vi kan behöva senare.
Ett grovt snitt av Pantheon-bilder innan du stygn.
Bearbeta videon
Att samla in 360°-innehåll är bara det första steget – det krävs mycket bearbetning för att konvertera de råa kamerabilder som vi har tagit till de slutliga tillgångar som du ser i HoloTour. När vi var hemma behövde vi ta videon från 14 olika kameraflöden och förvandla den till en enda kontinuerlig video med minimala artefakter. Vårt konstteam använde ett antal verktyg för att kombinera och polera de inspelade bilderna och vi utvecklade en pipeline för att optimera bearbetningen så mycket som möjligt. Filmen måste sys ihop, färg korrigeras och sedan sammansatt för att ta bort distraherande element och artefakter eller för att lägga till kompletterande fickor av liv och rörelse, allt med målet att förbättra den känslan av att faktiskt vara där.
Ett grovt snitt av Pantheon-bilder innan du stygn.
För att sammanfoga videorna använde vi ett verktyg som heter PTGui och integrerade det i vår bearbetningspipeline. Som en del av efterbearbetningen extraherade vi fortfarande ramar från våra videor och hittade ett stygnmönster som såg bra ut för en av dessa ramar. Vi tillämpade sedan det mönstret på ett anpassat plugin-program som vi skrev som gjorde det möjligt för våra videoartister att finjustera och justera stygnmönstret direkt medan de komponerade i After Effects.
Skärmbild av PTGui som visar de sydda Pantheon-bilderna.
Videouppspelning
När bearbetningen av filmen är klar har vi en sömlös video, men den är utomordentligt stor – runt 8 000 upplösningar. Avkodning video är dyrt och det finns mycket få datorer som kan hantera en 8K video så nästa utmaning var att hitta ett sätt att spela upp den här videon tillbaka på HoloLens. Vi utvecklade ett antal strategier för att undvika kostnaden för avkodning samtidigt som användaren kände att de tittade på hela videon.
Den enklaste optimeringen är att undvika avkodning av delar av videon som inte ändras mycket. Vi skrev ett verktyg för att identifiera områden i varje scen som har liten eller ingen rörelse. För dessa regioner visar vi en statisk bild i stället för att avkoda en video varje bildruta. För att göra detta möjligt delade vi upp den massiva videon i mycket mindre segment.
Vi såg också till att varje bildpunkt som vi avkodade användes mest effektivt. Vi experimenterade med komprimeringstekniker för att minska videons storlek. vi delar upp videoregionerna enligt geometrins polygoner som den skulle projiceras på; vi justerade UV:er och paketerade om videorna baserat på hur mycket detaljer olika polygoner som ingår. Resultatet av detta arbete är att det som började som en enda 8k-video förvandlades till många segment som ser nästan obegripliga ut tills de projiceras korrekt in i scenen. För en spelutvecklare som förstår texturmappning och UV-packning kommer detta förmodligen att se bekant ut.
En fullständig vy över Pantheon före optimeringar.
Den högra halvan av Pantheon, bearbetad för videouppspelning.
Exempel på en enda videoregion efter optimering och packning.
Ett annat trick vi använde var att undvika avkodning av video som du inte aktivt visar. I HoloTour kan du bara se en del av hela scenen vid ett givet tillfälle. Vi avkodar bara videor inom eller strax utanför ditt synfält (FOV). När du roterar huvudet börjar vi spela upp regionerna i videon som nu finns i din FOV och slutar spela upp de som inte längre finns i den. De flesta märker inte ens att det här händer, men om du vänder dig om snabbt ser du att videon tar en sekund att starta. Under tiden ser du en statisk bild som sedan tonas tillbaka till videon när den är klar.
För att den här strategin ska fungera utvecklade vi ett omfattande videouppspelningssystem. Vi optimerade uppspelningskoden på låg nivå för att göra videoväxlingen extremt effektiv. Dessutom var vi tvungna att koda våra videor på ett speciellt sätt för att göra det möjligt att snabbt byta till vilken video som helst när som helst. Den här uppspelningspipelinen tog lång tid att utveckla så vi implementerade den i etapper. Vi började med ett enklare system som var mindre effektivt, men tillät designers och konstnärer att arbeta med upplevelsen och förbättrade det långsamt till ett mer robust uppspelningssystem som gjorde det möjligt för oss att leverera på den slutliga kvalitetsbaren. Det här slutliga systemet hade anpassade verktyg som vi skapade i Unity för att konfigurera videon i scenen och övervaka uppspelningsmotorn.
Återskapa objekt nära rymden i 3D
Videor utgör majoriteten av det du ser i HoloTour, men det finns ett antal 3D-objekt som visas nära dig, till exempel målningen i Piazza Navona, fontänen utanför Pantheon eller luftballongen du står i för flygscener. Dessa 3D-objekt är viktiga eftersom människans djupuppfattning är mycket bra på nära håll, men inte särskilt bra långt borta. Vi kan komma undan med video i fjärran, men för att användarna ska kunna gå runt i sitt utrymme och känna att de verkligen är där behöver närliggande objekt djup. Den här tekniken liknar den typ av saker som du kan se i ett naturhistoriskt museum – föreställ dig en diorama som har fysisk landskapsarkitektur, växter och djurprover i förgrunden, men avtar till en smart maskerad matt målning i bakgrunden.
Vissa objekt är helt enkelt 3D-tillgångar som vi skapade och lade till i scenen för att förbättra upplevelsen. Målningen och varmluftsballongen faller i denna kategori eftersom de inte var närvarande när vi filmade. På samma sätt som speltillgångar skapades de av en 3D-artist i vårt team och texturerades på lämpligt sätt. Vi placerar dessa i våra scener nära där du står, och spelmotorn kan rendera dem till de två HoloLens-skärmarna så att de visas som ett 3D-objekt.
Andra tillgångar, som fontänen utanför Pantheon, är verkliga objekt som finns på de platser där vi spelar in video, men för att få dessa objekt ut ur videon och i 3D måste vi göra ett antal saker.
Först behöver vi ytterligare information om varje objekt. På plats för filmning fångade vårt team en hel del referensbilder av dessa objekt så att vi skulle ha tillräckligt med detaljerade bilder för att korrekt återskapa texturerna. Teamet utförde också en fotogrammetriskanning , som konstruerar en 3D-modell från dussintals 2D-bilder, vilket ger oss en grov modell av objektet i perfekt skala.
När vi bearbetar våra bilder tas objekt som senare ersätts med en 3D-representation bort från videon. 3D-tillgången är baserad på fotogrammetrimodellen men rensas upp och förenklas av våra konstnärer. För vissa objekt kan vi använda delar av videon, till exempel vattenstrukturen på fontänen, men det mesta av fontänen är nu ett 3D-objekt, vilket gör det möjligt för användare att uppfatta djup och gå runt det i ett begränsat utrymme i upplevelsen. Att ha objekt i närheten som detta bidrar avsevärt till en känsla av realism och hjälper till att jorda användarna på den virtuella platsen.
Pantheon-bilder med fontänen borttagen. Den ersätts med en 3D-tillgång.
Slutliga tankar
Uppenbarligen fanns det mer att skapa det här innehållet än vad vi har diskuterat här. Det finns några scener - vi gillar att kalla dem "omöjliga perspektiv"- inklusive luftballongturen och gladiatorstriden i Colosseum, som tog ett mer kreativt tillvägagångssätt. Vi kommer att ta itu med dessa i en framtida fallstudie.
Vi hoppas att delning av lösningar på några av de större utmaningarna som vi hade under produktionen är till hjälp för andra utvecklare och att du inspireras att använda några av dessa tekniker för att skapa dina egna integrerande upplevelser för HoloLens. (Och om du gör det, se till att dela den med oss på HoloLens App Development forum!)
Om författarna
David Haley är seniorutvecklare och har lärt sig mer om kamerariggar och videouppspelning än vad han trodde var möjligt när han arbetade med HoloTour. | Danny Askew är en videoartist som såg till att din resa genom Rom var så felfri som möjligt. | ||
Jason Syltebo är en Audio Designer som såg till att du kunde uppleva ljudbilden av varje destination du besöker, även när du går tillbaka i tiden. | Travis Steiner är en designchef som undersökte och scoutade platser, skapade reseplaner och regisserade filmning på plats. |