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 också inom det som verkligen gör modern film: jätte-bamse-effekter, till exempel kolliderande kontinenter och gigantiska flodvågor. De skapas på löpande band med svenska metoder.

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”.

Croods
”Croodarna” plaskar i filmen med samma namn. Vattnet är ett punktmoln som OpenVDB visualiserar. Genom att ändra olika parametrar i simulationen kan de digitala konstnärerna få precis det utseende som de eftersträvar. När de är klara så extraherar OpenVDB polygonytan så den kan renderas, alltså förses med blänk och glans.

Vem kan bättre än programmeraren själv, förklara hur man skapar enorma flodvågor och kontinentalkrockar? Vi fick en pratstund med Mihai Aldén nu när Oscarsyran lagt sig.

Hur kom du till Kalifornien?

Mihai Aldén– Jag läste medieteknik 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 DWA 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, säger Mihai Aldén.

Och sämre kan man ha det?

– Jo, medger han, som alltså numera är relokerad till palmer och vita stränder.

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.

OpenVDB ä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.

OpenVDB kan användas fristående eller tillsammans med exempelvis SideFX Softwares gränssnitt Houdini, som är i dagligt bruk i Hollywood. OpenVDB är även integrerat i Autodesk Maya som används för modellering, med flera.

OpenVDB
OpenVDB används för att skapa en animation av exempelvis vatten, med exempelvis gränssnittet Houdini, som körs av den digitala konstnär som har hand om filmens efterbehandling, 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, till exempel 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, till exempel glans och blänk. Ur renderaren kommer en färdig filmruta.

Draktränaren 2
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.

Nu är ert verktyg släppt med GNU-licens. 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 markanden?

– 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, alltså klippning och effekter.

Draktränaren 2
Jättedraken stiger upp ur vattnet, en bild gjord 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. (Klicka för större bild)

Så gör man vatten …

Vatten rör sig, flyter, sprutar och hoppar. Vatten simuleras ofta som partiklar, där varje partikel är en vattenmä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, alltså 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.

OpenVDB approximerar dessa ekvationer. De digitala konstnärerna 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.

Croods
Någon har animerat den här ”Croodarna”-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 (den vänstra bilden). OpenVDB 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 (den högra bilden) och rendera den.

Som med det mesta inom datorgrafik visualiserar man bara ytan, inte det som är inuti. Ytan renderas med strålspårning (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, nödvändigt för att reducera de extremt stora datamängder det annars skulle leda till.

Croods
I slutet av filmen ”Croodarna” kolliderar kontinentalplattorna kaotiskt, som en jättejordbävning. DWA:s 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 den ska flöda. (Klicka för större bild)

… och så gör man moln

Mästerkatten-moln
Filmen ”Mästerkatten” tilldrar sig delvis i en värld av moln, så man behövde skapa hela landskap av moln. Det kräver väldigt mycket data, vilket passar OpenVDB:s glesa format bra. Slottet i bilden har inget med molnsimulationen att göra – det har skapats separat av olika konstnärer, varefter man smäcker på moln runt omkring. (Klicka för större bild)

Mästerkatten
”Mästerkatten” krävde också moln som såg ut som ankor – de har stjärten hitåt på bilden. En digitalkonstnär har här skapat formen av ankan som en volym, varefter OpenVDB konverterat den till moln.

Mästerkatten
För att modellera moln börjar digitalkonstnären med att grovt formulera hur molnet ska se ut, i det här fallet ett antal olika sfärer som klumpats ihop. Av det vill man skapa ett densitetsmoln. Ytan beskrivs egentligen som densitetsbrus, som sedan belysas, genomlysas och renderas. (Klicka för större bild)

OpenVDB är universellt

Vilka filmer har OpenVDB 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”, ”Mästerkatten”, ”The Hobbit”, ”X-Men: Days of Future Past” och många fler. Vi har inte varit delaktiga i alla, utan vet bara om det ryktesvägen, säger Mihai Aldén.

Vart är animeringstekniken på väg? Vilka fenomen är utmanande att simulera korrekt? Tyngdlöshet? Svarta hål?

– 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 eller i en öken måste vi utveckla ett verktyg för att modellera detta, om vi inte redan har gjort det.

– Och även om vi i dag 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 Aldén.

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.

Bildrättigheter i denna artikel: Porträttfoto Mihai Aldén: Mihai Aldén. Infograf: Jörgen Städje/IDG. Övriga bilder: Dreamworks.

Fakta

OpenVDB:s webbplats
www.openvdb.org

Teorin – kanske lite väl mycket av den (pdf)
www.museth.org

Årets Scientific and Technical Awards
www.oscars.org

Om Navier-Stokes ekvationer på Wikipedia
en.wikipedia.org/wiki/Navier

En tidigare Städje-artikel om 3d-grafik
"Naturskönt i äkta 3d"