hf2 cortex siggraph 2011

Upload: imre-tuske

Post on 04-Jun-2018

217 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/13/2019 Hf2 Cortex Siggraph 2011

    1/1

    Using CortexOpen Source to build the Crowd Pipeline forHappy Feet Two

    Carsten Kolve Rogier Fransen Moe El Ali Daniele Niero Dan BethellDr. D Studios

    Figure 1: Maya crod sha!e" #oudini !rocedural geo$etry" %delight render &all utilising identical Corte' driven (ac)end *unctionality +Dr.D Studios ,ty

    -td. All rights reserved.

    Abstract

    ForHappy Feet Twoa tea$ o* % develo!ers (uilt a crod !i!elinea(le to !roduce a variety o* crod e**ects *or over /0 shots ith a

    $onth $ain !roduction !eriod and a tea$ o* average 1 artists.2he crod or)*lo inter*aced ith nearly all !roductionde!art$ents" *ro$ !revis all the ay to lighting" and or)ed across$ulti!le !lat*or$s.

    2he $ain *ocus o* this s)etch is not crod generation3 techni4ues*or this have (een covered in nu$erous !revious or)s 5 instead itis a case study o* using the o!en source so*tare li(rary Cortex1asa (ase *oundation *or ra!id develo!$ent o* custo$ so*taresolutions" li)e a crod syste$" in a 6F7 8 *eature ani$ationconte't.

    1 Choosing Cortex

    A*ter having co$!leted crod or)*lo s!eci*ications it (eca$ea!!arent that i$!le$enting all re4uired *eatures ithin the given 9$onth ti$e*ra$e as not !ossi(le given the availa(le $an!oer.A*ter evaluating the o!en source li(rary Corte' *or its suita(ility asa *oundation o* the crod syste$" e antici!ated (eing a(le toreduce the develo!$ent ti$e (y over %0 co$!ared toi$!le$enting a co$!lete custo$ in5house solution. 2his alloedus not only to stay ithin our resource allocation (ut also !ro*it*ro$ e'tra *unctionality not (udgeted *or.

    2 Using Cortex

    Dr. D;s crod syste$ as (ased on the conce!t o* $ass instancing!re5recorded s)eletal ani$ation" ty!ically ac4uired (y $otionca!turing. For Mesh,ri$itive ty!e. For ani$ation data e storearrays o* $atrices to descri(e s)eletal !oses. An i$!ortantaddition to the already e'isting !ri$itive ty!es in Corte' is as)eleton re!resentation: Corte'> seriali?a(le Co$!ound@(ectclasses" hich are si$ilar to runti$e asse$(led C structs" alloedus to !rototy!e a suita(le structure in ,ython" (e*ore i$!le$entingit as a S)eleton,ri$itive in C.

    2ogether ith $age Engine 6F7" the initial develo!ers and $aincontri(utors to Corte'" data ty!es and o!erations ere !ut in !laceto handle (ind5in*or$ation *or s$ooth s)inning ty!e de*or$ations.

    1 htt!:88code.google.co$8!8corte'5v*'8

    ith these s$all additions to Corte' all ele$ents ere in !lace toani$ate a s)eleton and de*or$ a geo$etry (ound to it !rocedurally.

    Data anage!ent@ur data needed to (e organised in ays that $a)e it easy ande**icient to access and store: Ani$ation data is stored in ahierarchical structure that allos *or *ast se4uential as ell asrando$ access o* $ulti!le ani$ation !oses. 2he i$!le$entation is(ased on the Filende'ed@ inter*ace !rovided (y Corte'. For*aster re!eated access" $ainly utilised during interactive !lay(ac)"e used the e'isting -R caching $odule. 2his ena(led us toaccess $inutes o* uni4ue ani$ation data *or hundreds o* charactersat interactive rates.

    All character related co$!onents ere stored in custo$Co$!ound@(ects o!ti$ised *or convenient access. 2hesestructures ere (uilt using s$all ,ython scri!ts that analysed assetstructures !rior to conversion. -ayout in*or$ation hich

    re*erences ani$ations" character and terrains as also stored in asi$ilar structure and accessed through a custo$ *unction5setalloing higher level o!erations such as $erging o* layouts.

    anual and Procedural Crowd "ayouts

    hile in Maya" crod layout data as !assed through Corte',ython scri!ted o!erator nodes that !rocedurally $odi*y the data"ena(ling o!erations li)e clu$!ing" terrain ada!tion or collisionresolving. A custo$ Maya sha!e here each co$!onentre!resented a single character visualised through articulated cut5u!geo$etry as used *or $anual layout. For s!eed reasons as!ecialised @!enl dis!lay solution as !re*erred to. the Corte'generic l rendering $odule.

    Crods that re4uired a $ore !rocedural a!!roach" li)e *loc)s andsar$s" ere created in #oudini. 2hese setu!s utili?ed the sa$e

    o!s in use on the Maya side" (ut this ti$e inter*acing ith native#oudini technology. @! scri!ts ere alays the sa$e" no $atterthe !lat*or$" alloing *or 4uic) reuse in $ulti!le conte'ts & evenin standalone ,ython.

    #endering $ %&

    For #F/ all lighting and *' ere done in #oudini" all rendering in%delight. For crod rendering to Corte' ,ython scri!ted delayedRender$an !rocedurals ere used: 2he *irst one deter$inedcharacter (ounding (o'es and inected su(5!rocedurals res!onsi(le*or generating the *inal character data at a given lod at renderti$e.

    2he sa$e o!erations generating character geo$etry duringrendering ere also used to generate te$!orary geo$etry atrunti$e in #oudini" used (y the *' de!art$ent to generate

    secondary e**ects li)e *oot ste!s and sno )ic)s. ntegration o*Corte' in #oudini as co5develo!ed ith $age Engine.

    ' Conclusion

    Even though the initially antici!ated *unctionality o* Dr. D>s crodsyste$ di**ered in $any as!ects *ro$ the *inal toolset" Corte' has!roven to (e a *le'i(le (ase *or general 6F7 so*tare develo!$entand a $ain contri(uting *actor *or delivering the !i!eline in ti$e.

    Due to its $odular structure" a (road set o* e'isting *eatures andthe *act that $ost o* its *unctionality is readily availa(le in ,ythone (elieve it is ell suited *or ra!id !rototy!ing. E'tending Corte'directly did re4uire a longer *a$iliarisation !eriod" (ut using (oththe ,ython or C li(raries as straight*orard.

    ,artici!ating in the o!en source !roect develo!$ent and

    co$$itting code (ac) has ena(led us to receive *eed(ac) and (ug*i'es *ro$ the co$$unity" *oster good coding !ractices and hencedevelo! higher 4uality code *aster. Con*ronted ith other RGDtas)s in the *uture" e ould not hesitate utilising Corte' again.