7min

Tags in dit artikel

, , ,

Linux Journal heeft recentelijk een aardig artikel geproduceerd over het gebruik van Linux in de animatiewereld en specifiek bij DreamWorks, het bedrijf achter films als Shrek en Shark Tale. Het interview werd begin deze maand al gepubliceerd, maar ons inziens interessant genoeg om met jullie te delen.

Het gebruik van Linux is tegenwoordig gemeengoed in de animatiewereld. Studio’s gebruiken Linux voor het renderen van scenes en visuele effecten. Een van de grootste en bekendste animatiestudio’s is DreamWorks, dat reeds successen boekte met animatiefilms als Shrek, Shark Tale, Madagascar en Flushed Away. Waarschijnlijk heeft DreamWorks de grooste commerciële Linuxinstallatie, met ongeveer 1000 Linuxdesktops en nog eens 3000 Linuxservers.

DreamWorks legt de lat steeds hoger voor zichzelf en dat zorgt ervoor dat er steeds meer renderuren nodig zijn voor nieuwe films. Volgens Animation CTO Ed Leonard van DreamWorks zijn er twintig miljoen CPU renderuren in Shrek 3 gaan zitten, terwijl dat er in Shrek 2 nog tien miljoen renduren zaten en in de originele Shrek film maar vijf miljoen renderuren.
Maar met ongeveer 1200 werknemers is Shrek niet het enige project waar aan gewerkt wordt. Daar komt nog eens bij dat ongeveer 800 mensen in Glendale studio werken en 400 mensen in de DI studio in Redwood City werkzaam zijn. Behalve het 2GB netwerk dat de twee kantoren verbindt, betekent dat ook dat er een goed netwerk met een goed serverpark beschikbaar moet zijn.

Nieuwe uitdagingen

Zoals gezegd wil DreamWorks de lat dus steeds hoger leggen en dat blijkt uit de nieuwe effecten die in Shrek 3 zitten. De tools om deze nieuwe effecten te kunnen maken worden zelf door DreamWorks ontwikkeld. Zo zijn heeft DreamWorks zelf een animatie-, belichting- en rendersysteem ontwikkeld, maar ook aparte tools voor water, vuur, kleding en grote groepen karakters. Leonard schat in dat DreamWorks reeds enkele miljoenen lijnen code heeft geschreven in C en C++.


Eerst wordt er een schets gemaakt van een scene

Grootste uitdaging in Shrek 3 was het lange haar van sommige karakters. Tot nog toe waren er maar weinig karakters met lang haar in animatiefilms te zien en waar het voor Shrek 2 nog maanden duurde om één scene met lang haar te doen, heeft DreamWorks nu een systeem ontwikkeld dat de manier van bewegen van lang haar meer automatiseert. Ook is het voor het animatieteam een uitdaging om zaken realistisch te animeren, ook al weet je niet hoe het er in het echt uit zou moeten zien. "We hebben met kleding nu meer interactie, zoals het afscheuren van kleding. Snelle bewegingen zijn altijd moeilijk. In de echte wereld is de maximale snelheid zo hard als je kunt, maar als je van 0 naar 800 km/h gaat, dan laat je waarschijnlijk wel wat kleren achter", aldus Andrew Pearce, hoofd van DreamWorks Animation R&D groep.

Grote groepen zijn in Shrek 3 ook veel gevarieerder dan voorheen. In sommige scenes zijn er 40 tot 50 karakters aanwezig op een podium met nog eens 2500 toeschouwers. Om die toeschouwers zo verschillend mogelijk te maken heeft DreamWorks variabele karakters gemaakt. Dat is het makkelijkst te bereiken door de karakters verschillende soorten haar en hoofddeksels te geven. Zo zijn er voor vrouwelijke karakters zijn 25 variaties en dertien haarstijlen. Daardoor kan er op een snelle manier een gevarieerd publiek gemaakt worden.


De afdeling Layout positioneert de karakters en hun pose

Ook met de belichting in Shrek 3 is er een enorme sprong gemaakt ten opzichte van Shrek 2. In vrijwel alle scenes is nu gebruikgemaakt van globale belichting. Voor statische omgevingen is deze techniek al behoorlijk ingewikkeld en duur, maar in Shrek 3 is het ook toegepast op dynamische omgevingen. De software van DreamWorks bekijkt vooraf welke objecten statisch zijn en probeert daarna de dynamische objecten efficiënt te belichten. Ingewikkelde scenes zoals een bos zijn nog te moeilijk om te voorzien van globale belichting, maar met verbeteringen in multicore chips en Linux is er steeds meer mogelijk.

De rol van Linux in het animatieproces

Als eerste wordt er natuurlijk een verhaal met bijbehorende schetsen gemaakt. Daarna worden de schetsen in 3D gemodelleerd en soms gerenderd. DreamWorks gebruikt hiervoor het commerciële pakket Maya. Vervolgens worden de modellen door de afdeling layout gepositioneerd en van algemene belichting voorzien. Daarna krijgen de modellen een intern skelet, waarna de scene animators de modellen ter beschikking krijgen. Omdat de scenes in Shrek 3 zo enorm complex zijn werkten de animators in tweetallen, terwijl ze in Shrek 2 nog alleen werkten. Als laatste worden belichting en speciale effecten als kleding en vuur toegevoegd.


De scene wordt verder uitgewerkt door animators

De hele scene wordt daarna gerenderd met behulp van het serverpark dat meer dan 3000 CPU’s telt. Dankzij het commerciële pakket Platform LSF wordt er een gridsysteem gecreëerd zodat elke frame aan een aparte node wordt toegewezen. De gerenderde frames worden vervolgens in een film gestopt met behulp van Avid software, dat overigens niet onder Linux werkt. Tegelijkertijd is er al een ruwe audiotrack gemaakt op basis van de sceneschetsen. Uiteindelijk wordt alles samengevoegd, zodat stukje bij beetje de film ontstaat.

"Het feit dat het leeuwendeel van onze productie met Linux werkt is interessant. We werken al jaren met Linux, maar ik ben nog steeds verbaasd. Als je terugkijkt was het gebruik van Linux nog radicaal toen Digital Domain het gebruikte voor de film Titanic, maar de industrie heeft het daarna snel opgepakt", aldus Darin Grant, hoofd van Production Technology.
Grant is verantwoordelijk voor een goede samenwerking en uitwisseling van de twee divisies van DreamWorks. Hij werkt onder ander met de VSC videoconferencing software die door DreamWorks zelf ontwikkeld is. Hewlett-Packard heeft dit pakket opgepakt en als Halo room op de markt gebracht. Momenteel is er dan ook een 45mbps Halo videonetwerk aanwezig, zodat DreamWorks op ieder moment contact kan hebben met HP en AMD.


De uiteindelijke scene met belichting en texturen

HP is eveneens de leverancier van de servers en desktops van DreamWorks. Red Hat is op zijn beurt verantwoordelijk voor de versie van Linux die DreamWorks gebruikt. De desktops die gebruikt worden zijn HP xw9300 die draaien op RHEL 4. Het serverpark bestaat uit HP DL145 G2 servers met vier cores en twee gigabyte geheugen per core. Voor Shrek 3 moesten de partijen nauw samenwerken, omdat DreamWorks een metadatasysteem wilde implementeren in het systeem. Daardoor is het mogelijk om versie-informatie, renderstatistieken en andere gegevens bij te houden. Volgens Grant was dat goed te doen, omdat DreamWorks haar eigen toolsets en bijbehorende bestandsformaten ontwikkelt.

Verbeteringen van het systeem

DreamWorks is verder druk bezig om hoofdcode voor de rendering om te zetten van Perl naar Python. Het bedrijf hoopt uiteindelijk alle code in Python te hebben, maar het grootste deel blijft voorlopig in Perl. Volgens Grant is de koppeling tussen Python en C++ eenvoudiger te maken en daarnaast werkt Python meer uit het oogpunt van objecten, wat aanpassingen in het systeem veel eenvoudiger maakt. Een derde voordeel is volgens Grant het feit dat veel applicaties van derde partijen in de industrie geschreven zijn in Python.

Voor wat betreft het serverpark zijn er ook nog uitdagingen om te overwinnen, bijvoorbeeld op het gebied van koeling en stroomverbruik. De eerste stap in het terugdringen van beide is de overstap van dualcore processors naar quadcore processors, een transitie die de komende acht maanden uitgevoerd zal worden. Ook is DreamWorks geïnteresseerd in het inzetten van GPU’s voor het renderen, naast CPU’s. De techniek is echter nog erg nieuw en er zijn nog teveel limitaties op het gebied van bandbreedte tussen de GPU en CPU.


Het serverpark van Dreamworks met meer dan 3.000 processors

Aardig om te weten is dat Shrek 3 in totaal 24 terabyte aan opslagruimte in beslag neemt, naast nog eens 30 terabyte aan gereserveerde opslagruimte. DreamWorks vindt het belangrijk om reeds gemaakte films dicht bij huis te houden, maar heeft voor de veiligheid ook een aantal back-ups buiten de deur gemaakt.

Kunnen de studio’s bijdragen aan de opensource gemeenschap

De vraag blijft waarom studio’s tot nog toe niet heel veel doen voor de opensource gemeenschap, terwijl een opensource besturingssysteem als Linux zoveel voor dit soort bedrijven betekent. Als eerste is er natuurlijk het probleem van patenten, maar het blijkt in de praktijk ook lastig zijn om een opensource project draaiende te houden. Een poging van ILM om het OpenEXR afbeeldingsformaat opensource te maken bleek achteraf meer werk dan gedacht.

In sommige gevallen wordt er vanuit de filmindustrie wel sponsoring verleend aan opensource projecten, zoals bijvoorbeeld deep paint ondersteuning voor GIMP. Uiteindelijk werd dit nooit onderdeel van GIMP, maar wel van CinePaint. DreamWorks Animation, Disney en Pixar kozen er echter voor om CodeWeavers financieel te steunen, om Photoshop werkend te krijgen op Linux onder Wine.

De toekomst van Linux bij DreamWorks

DreamWorks zal volgens Leonard ook in de toekomst zwaar blijven investeren in nieuwe technieken, om haar films nog beter te maken. Vanaf het begin van 2009 zullen ook de eerste films op de markt komen die vanaf het prille begin ontworpen zijn met een 3D-gedachte. De eerste films die gebaseerd zullen zijn op dit systeem dat met Shrek 3 ontwikkeld is zullen Monsters vs. Aliens en How to Train Your Dragon zijn.

Het is dan ook niet verwonderlijk dat mensen met kennis van Linux nog altijd zeer gewenst zijn bij DreamWorks. Het bedrijf heeft dan momenteel ook vele vacatures op verschillende posities. Kennis van Linux is uiteraard een pré.