Du har sett det åtskilliga gånger på film: enorma jättevågor som slår in över ett fartyg och slukar det, osannolika sandstormar som döljer hela städer. Det ser ju så verkligt ut. Å andra sidan har ingen av oss någonsin sett en jättesandstorm, så det kan se ut hur som helst och ändå tyckas verkligt. Men simulationen måste trots det vara baserad på fysikaliska regler.
Svenskarna gör sig bemärkta i Hollywood, minsann. Det är inte bara Ingrid Bergman och klanen Skarsgård, utan det som gör modern film: jätte-bamse-effekter, som kolliderande kontinenter och gigantiska flodvågor, skapas på löpande band med svenska metoder.
Croods plaskar i filmen med samma namn. Vattnet är ett punktmoln som VDB visualiserar. Genom att ändra olika parametrar i simulationen kan artisterna få precis den ”look” de eftersträvar. När de är klara så extraherar VDB polygonytan så den kan renderas, alltså förses med blänk och glans.
För att förstå hur animering av naturfenomen går till, talar vi med svensken Mihai Aldén som sedan några år jobbar på den amerikanska animationsstudion Dreamworks Animation (DWA) i Los Angeles. Han fick en teknisk Oscar 2015 tillsammans med kollegorna Ken Museth och Peter Cucka. Tillsammans har de utvecklat ett nytt ramverk, OpenVDB, för lagring och bearbetning av de stora 3D-volymer som behövs för dagens effektintensiva filmer. Det har bland annat använts i DWA-filmerna Mästerkatten, Madagaskar 3, De fem legenderna, Croodarna och Draktränaren 2.
Mihai Aldén från Linköping, numera relokerad till palmer och vita stränder, har god hand med gravitation och viskositet. Bild: Mihai Aldén.
Vem kan bättre än programmeraren själv, förklara hur man skapar enorma flodvågor och kontinentalkrockar? Hur kom du till Kalifornien?
– Jag läste mediateknik vid Linköpings Universitet. Jag har alltid varit väldigt intresserad av datorgrafik, så när det var dags för examensarbete hade jag hört att det fanns en person på DWA, Ken Museth som tidigare varit professor på universitetet. Jag kontaktade dem och fick tre månader i Los Angeles för att utveckla en algoritm som kunde ta polygonmodeller och göra om dem till volymer. De blev så nöjda att jag fick tre månader till, med att utveckla en metod som gjorde det motsatta. Efteråt var de så nöjda att de erbjöd fast anställning, inleder Mihai.
– Sämre kan man ha det?
– Jo, medger Mihai.
– Var det kul att få en Oscar?
– Ja. Vi fick gå på en särskild oscarsgala för Technical Achievement Awards som hölls i Beverly Hills. Jobbet vi gjorde var otroligt roligt och det här är en bekräftelse på att det är bra och användbart.
VDB är ett ramverk för att lagra de mycket stora datamängder som uppstår när man modellerar volymer för animerad film, samt en uppsättning digitala verktyg för att manipulera datavolymerna och åstadkomma olika visuella effekter. VDB kan användas fristående eller tillsammans med exempelvis SideFX Softwares gränssnitt Houdini, som är i dagligt bruk i Hollywood. VDB är även integrerat i Autodesk Maya som används för modellering, med flera.
VDB används för att skapa en animation av exempelvis vatten, med exempelvis Houdini. Houdini körs av den ”artist” som har hand om filmens efterbehandling och är ungefär som ett Photoshop fast för effekter och simulering. Förenklat kan man säga att när man vill ha vatten i en scen börjar man med att ta in en polygonmodell av scenen ”torr” och väljer lämpligt verktyg, anger sina parametrar för att simulera olika fenomen, hav, fontän, eller vattenfall. Efter simuleringen får man ut en polygonyta som kan skickas till renderaren för att förses med lämpliga materialegenskaper, t ex glans och blänk. Ur renderaren kommer en färdig filmruta.
De jättestora drakarna i filmen Draktränaren 2 sprutar is. Vattnet som sprutar ur drakens mun är en fluidsimulering, och allteftersom det sprutar ut ökar man viskositeten så att det till sist stelnar och ser ut som is.
– Och nu är verktyget släppt som GNU. Varför ger ni bort det?
– Folk som arbetar med utveckling i vår bransch kommer ofta från den akademiska världen och där är kulturen sådan att man publicerar sina resultat. Mozilla Public License Version 2.0 är en väldigt generös licens som gör att andra företag kan inkludera vår mjukvara i sina egna verktyg och programvaror helt fritt. Det har fått spridning hos alla de stora effekthusen världen över.
– Effekthusen? Finns det företag som enbart frammanar jättevågor och explosioner? Säljer man jättevågor på öppna marknaden?
– Animerad film och spelfilm skiljer sig åt i det avseendet. Hos Dreamworks som gör animerad film är det vanligt att man gör allting internt. I spelfilmsbranschen är det de stora produktionsbolagen som ansvarar för manus, regi och budget, men när det kommer till effekterna bjuds jobbet ut bland effekthusen, som specialiserat sig på post-produktion: klippning och effekter.
Här kommer en jättedrake upp ur vattnet. Du ser nätt och jämt ett drak-öga i bilden. Bilden har gjorts med flera simuleringar. Vätskan runt huvudet är en simulering som får sin begränsningsyta från annat i scenen, som båtarna och drakarna. Nästa simulering ger skummet som flyter med vattnet. Den tredje ger vattendimman.
Simulation av vatten
Vatten rör sig, flyter, sprutar och hoppar. Vatten simuleras ofta som partiklar, där varje partikel är en vatten-mängd som är kontinuerlig (en klump). Man bryr sig i det här fallet inte om att vattnet består av molekyler. Vatten modelleras enligt Navier-Stokes ekvationssystem, som beskriver hur ett flöde av vatten eller gas beter sig. Flödet beskrivs som ett vektorfält (en hel hoper vektorer tillsammans), som både förändras och förflyttar sig åt något håll. Du kan se det som ett punktmoln av vatten i rörelse. VDB approximerar dessa ekvationer. Artisterna har full kontroll över gravitation, viskositet och flöden, så de kan bestämma hur vattnet ska bära sig åt, om det ska vara trögflytande eller livligt.
Ur Croods. Någon har animerat figuren som hoppar upp ur vattnet, fast vattnet inte finns från början. Därefter animerar man vattnet som figuren knuffar till och gör ett punktmoln av det (t.v.). VDB tar partikelmolnet och konverterar det till en volym och när det är i volymform kan man applicera verktyg som kan manipulera och skulptera ytan. Därefter kan man extrahera polygonytan (t.h.) och rendera den.
Som med det mesta inom datorgrafik, visualiserar man bara ytan. Inte det som är inuti. Ytan renderas med ray-tracing, en metod som beräknar hur ljusstrålar utbreds och reflekteras i scenen för att skapa fotorealistiska bilder. Att endast lagra ytan är det man kallar för ”sparse”, gles lagring, vilket är nödvändigt för att reducera de extremt stora datamängder det annars skulle leda till.
I slutet av filmen Croods kolliderar kontinentalplattorna kaotiskt, som en jättejordbävning. DWAs verktyg kan beskära modellerna på olika sätt och ha sönder dem till flisor, som kan falla och studsa. Röken är en annan simulering, som tar bergsbitarna som indata till röken, för att veta hur denna ska flöda.
Modellering av moln
Filmen Mästerkatten tilldrar sig delvis i en värld av moln och filmbolaget ville representera väldigt stora volymer som moln. Hela landskap av moln. Moln kräver väldigt mycket data, vilket passar VDBs glesa format bra. Slottet i bilden har inget med molnsimulationen att göra. Det har skapats separat av olika artister, varefter man smäcker på moln runt omkring.
Mästerkatten krävde också moln som såg ut som ankor (med stjärten hitåt). En artist har här skapat formen av ankan som en volym varefter VDB konverterat den till moln.
För att modellera moln börjar artisten med att grovt formulera hur molnet ska se ut, i det här fallet ett antal olika sfärer som klumpats ihop. Av detta vill man skapa ett densitetsmoln. Ytan beskrivs egentligen som densitetsbrus, som sedan belysas, genomlysas och renderas.
VDB är universellt
– Vilka filmer har VDB använts till?
– Metoden har använts av flera olika filmbolag, när de skapat exempelvis Apornas planet: Uppgörelsen, Captain America: The Return of the First Avenger, Croodarna, Draktränaren 2, Guardians of the Galaxy, Interstellar, Marvel-filmerna, Puss In Boots, The Hobbit, X-Men: Days of Future Past och så vidare. Vi har inte varit delaktiga i alla utan vet bara om det ryktesvägen, säger Mihai.
– Vart är animeringstekniken på väg? Tyngdlöshet? Svarta hål? Vilka fenomen är svåra att simulera korrekt?
– Vi drivs väldigt mycket av efterfrågan, av vilken typ av filmer man vill göra. Bestämmer de sig för att göra en film som utspelar sig i rymden, i en öken eller så, måste vi utveckla ett verktyg för att modellera detta, om vi inte redan har det. Även om vi idag kan göra vatten, har vi ingalunda fulländat det. Det finns mycket kvar att göra för att det ska bli helt realistiskt. Vi har för närvarande olika verktyg för att simulera olika scenarier, som vatten i ett glas eller vatten i ett hav. Ett stormigt hav simuleras annorlunda än ett stillsamt. De är alla olika typer av approximationer och de kan behöva samordnas. Men annars, vill du ha ett svart hål så fixar vi ett, avslutar Mihai.
Nu skulle jag kunna brista ut i mitt gamla, kära påstående att ”allt kul kommer inte från Kalifornien” men det är bara delvis sant i det här fallet. Man får ändå vara tacksam för att idéerna som förtrollat hela världen sprang ur en svensk hjärna.
Läs mer
OpenVDB hemsida: https://www.openvdb.org
Teorin, lite för mycket av den: http://www.museth.org/Ken/OpenVDB_files/Museth_TOG13.pdf
Årets Sci-tech Awards: https://www.oscars.org/sci-tech
Det här kan du ju bry din hjärna med: Navier-Stokes ekvationer: https://en.wikipedia.org/wiki/Navier%E2%80%93Stokes_equations
Syntetisk natur i Terragen: https://planetside.co.uk/
Rapunzeltalet: https://www.bbc.com/news/science-environment-17012795