Legger her ut dokumentasjonen av semesteren. Dette er kun tekst, og det er i bunn og grunn bare en oppsummering av prosessen. Hvis du har lest bloggen min etterhvert er det ingenting i denne teksten som er helt nytt for deg.
——————————–
Semesteroppgaven 2012 av Daniel Odland
Introduksjon
Til semesteroppgaven min på 3D-design har jeg laget en zombie-karakter. Karakteren er teksturert, shadet og har en enkel rigg for posering. Meningen med oppgaven var å lære mer om shading, lyssetting og rendering samt å få gjort en del ting jeg ikke har mye erfaring med. Eksempler på dette er å bruke de forskjellige sub surface scattering-shaderne i Mental Ray og å jobbe med flere UV-spaces. Sistnevnte har jeg lært mye av, blant annet å ikke bruke dette med mindre man virkelig trenger det. Det har komplisert nesten alle oppgaver som ellers ville ha vært enklere i tillegg til at det har økt rendertiden betraktelig.
En del av grunnen til at ting blir mer komplisert med flere UV-spaces er at mange programmer, særlig litt mindre, nyere og uavhengige programmer ikke nødvendigvis støtter denne teknikken eller bare delvis.
En ting jeg gjorde etter hver prosess var at jeg brukte tid på å evaluere og notere meg ting jeg skulle gjort annerledes. Dette var verdifullt og en viktig del av prosessen.
Oppgaven ble desverre ikke helt ferdig, og det jeg har levert inn er laget av rendere jeg hadde klar. Den endelige komposisjonen ble desverre ikke rendret ut fordi jeg hadde brukt opp all tiden min og måtte velge mellom å håpe at jeg klarte å få denne ut i tide eller lage en ferdig presentasjon av det jeg faktisk hadde klart. Jeg valgte det sistnevnte. Jeg kommer imidlertid til å nevne ting jeg har jobbet med på environmenten.
Jeg velger å lage dette dokumentet som en oppsummering av prosjektet og kun som tekst, da bloggen min dokumenterer det meste av prosessen i detalj og med mange bilder. Bloggen kan finnes på http://wwww.ideblogg.no/danielodland
Beskrivelse av framgangsmåte
Modellering
Jeg tror tradisjonell polymodellering er på vei til å forsvinne, hvorpå voxelsculpting vil overta som den vanligste måten å forme modellen på som man da retopologiserer. Dette er i så fall positivt for modellører i den forstand at man vil ha et klart skille mellom den tekniske og den artistiske delen av modellering og fordi sculptingprogrammene har helt klart bedre verktøy for å forme modellen. Det negative ved dette er jo selvsagt at man mister den gøye prosessen det er å polymodellere. Jeg er veldig glad i å polymodellere, og ville gjøre det på denne oppgaven.
Jeg kjøpte boken “Atlas of human anatomy for the artist” av Stephen Rogers Peck i forkant av oppgaven. Denne boken har lært meg mye om hvordan vi egentlig ser ut. Det er rart hvordan man ikke ser enkelte ting selv om man ser folk hver eneste dag. Eksempler er sternocleidomastoid muskelen i halsen som er så viktig men som jeg ikke hadde tenkt på før. Jeg har blitt flinkere til å se former nå enn før jeg startet oppgaven og det har gjort meg mer selvsikker på modelleringen.
Jeg la inn en del detaljer i modellen. Dette er litt mer komplisert å UV-mappe men jeg syns det var verd det fordi syns bare det var såpass gøy å modellere inn detaljene i neglene for eksempel. Jeg sculptet også en del detaljer inn i modellen, som så ble bakt inn i displacementmaps. Kommer tilbake til dette.
UV-mapping ble gjort i Headus UV-layout. Jeg er kjent med Maya sine verktøy for UV’er men det er veldig tungt å jobbe med fordi UV-editoren er buggy og krasjer for ofte. Headus UV-layout har også langt bedre støtte for store mesher og har betydelig bedre unfoldingalgoritmer. Dette fører til lite strekk og veldig rask UV-layout.
En av de spesielle tingene med karakteren min er at den har tre UV-spaces: en for hodet og innsiden av munnen (tok også med hånden i denne), en for torsoen og en for lemmene (armer, bein og føtter). Dette gjorde jeg ved å først legge ut UV’ene i Headus, eksportere til Maya og arrangere de forskjellige shellene der. Det jeg gjorde for å få rett tekstur på rett del av meshen var at jeg i placementnodene på teksturene ga en offset på teksturene slik at de dekket rett UV-space. Jeg brukte så layered textures for å kombinere dette til en tekstur, og brukte denne til å plugge i shaderen. Grunnen til at jeg ikke bare lagde en tekstur med alle delene i var at Maya støtter ikke teksturer over 4k. Dermed må man ha 3 4k teksturer som går inn i en layered texture og la denne utgjøre de 12k man egentlig ville ha.
Jeg tok så med meg modellen inn i Zbrush. Der sculptet jeg de øvrige detaljene jeg ønsket meg.
Jeg har blitt god venn med slash-brushene, move-brushene (særlig move topological), inflate-brushen og clay-brushene.
For å få Zbrush til å fungere med 3 UV-spaces lagde jeg polygroups som tilsvarte de forskjellige spaces og da jeg skulle eksportere teksturer fra Zbrush hidet jeg de polygroups som ikke skulle være med.
Jeg eksporterte mange versjoner av displacement maps fra Zbrush. Jeg testet forskjellige settings både rangemessig (hvilket level jeg bakte fra og til, f eks 1-6, 1-4), med og uten adaptive, bitdybder, med og uten UV smoothing og så videre. Jeg lagde så plansjer hvor jeg studerte forskjellene på de forskjellige metodene. Slik fikk jeg testet mange metoder. Jeg endte opp med å eksportere 32-bits displacement. Dette viste seg i tillegg til å være penere også å være betydelig enklere å sette opp i Maya (med tanke på alpha gain). Ulempen var selvsagt størrelse på filene og mangel på funksjon i Photoshop, men det gikk greit å gjøre de fleste forandringene jeg ville gjøre, da både clone stamp tool, flipping vertikalt og konvertering til RGB fungerer med 32 bit.
Teksturering
Jeg startet tekstureringsprosessen ved å lage en render av modellen og ta den inn i photoshop for å painte over den. Jeg testet en del fargekombinasjoner på denne måten og endte opp med å ha litt peiling på hvor jeg ville hen fargemessig.
Selve tekstureringen foregikk i Mudbox og Photoshop. Jeg lagde layers der det var naturlig. Mudbox viser seg å fungere greit med flere UV-spaces. Når man jobber masker den ut de delene man ikke bruker i øyeblikket, og så aktiverer man de UV’ene man vil painte på. Når man eksporterer kommer det automatisk 3 maps ut. Det eneste jeg ikke fikk til her var at jeg ville ta inn teksturene senere for å painte videre på de, og det gikk ikke. Det hadde gått om jeg hadde kun en space, men ikke med tre.
Paintingen foregikk ved at jeg picket farger fra referansebilder og paintet med stencils. Lagde tre forskjellige versjoner ved å bruke blending modes i Mudbox. Kunne gjort dette senere i Photoshop, men valgte altså å gjøre det i Mudbox.Gjorde senere en del små endringer på teksturene i Photoshop, mest fordi Mudbox ikke er helt perfekt og lager litt artifacts.
En ting jeg lærte meg til denne oppgaven var actions i Photoshop. Tanken på å gjøre noen av tingene som hadde med texture management å gjøre uten actions gjør meg svimmel. Fant også ut at man kan lage en droplet som er en liten exe man kan droppe bildefiler på. Den åpner da photoshop og utfører de actions man i forkant har definert for dropleten. Slik kunne jeg raskt gjøre endringer på teksturer som å flippe de vertikalt, endre filformat, og så videre. Veldig hendig.
Øynene lagde jeg ved å få en fotostudent til å fotografere irisen min med macrooptikk. Brukte dette til å lage en iristekstur. Lagde sclera ved å bruke Paint Effects til å lage blodårene, rendret dette og brukte det i Photoshop til å lage øyne. Ellers var det mia_material for å lage tårene under øyeeplet og hornhinnen.
Shading/look-development
Lærte meg Mental Ray sin subdivision approximation node å kjenne i løpet av oppgaven. Denne er veldig nyttig om man trenger mange subdivisions for å få displacement til å se bra ut. Da trenger man bare lowpolymeshen i scenen. Mye lettere enn å jobbe med en hipolymesh. Jeg slet lenge med å få til displacement og hadde en stund planer om å bruke en hipolymesh istedet for displacement. Jeg er glad jeg sto på dag og natt med å finne ut av dette, da det har ført til en bedre forståelse for displacement enn jeg hadde fra før. Jeg er nå mer trygg på å bruke displacement enn tidligere, og kommer til å bruke det på framtidige prosjekter hvor det trengs.
Skrev noen expressions i løpet av oppgaven. Dette har strengt tatt ikke mye med shading å gjøre, men jeg tar det med her fordi det var her jeg trengte det mest. Det er veldig godt at vi har lært litt MEL i løpet av året, da jeg nå skjønner det såpass greit at jeg kan skrive en expression for å forenkle oppgaver som er tidkrevende å gjøre manuelt. Et eksempel er at jeg skrev en liten linje som hele tiden passet på at alpha offset var korrekt i forhold til alpha gain.
mia_material_x er veldig nyttig har jeg erfart. Den har gode refleksjonsfunksjoner i forhold til Maya sine egne materialer. Jeg mener oppriktig at Maya sin rendering er hårreisende dårlig. Jeg mener at Maya burde ha native rendering som er konkurransedyktig. Det hadde ikke vært et stort problem hvis Mental Ray var godt integrert men det er det jo ikke. Bare se på Modo og Houdini hvor nyttig det er med en god og velintegrert renderer når man driver med shading, lys og look-dev. Jeg brukte mia_material på det meste, inkludert skin shaderen. Går mer inn på det etterhvert.
En ting jeg er veldig fornøyd med i Maya er hvordan man kan koble all slags noder sammen på kreative og smarte måter. Da jeg lagde skin shaderen på karakteren begynte jeg med å sette opp en scatteringnode hvor jeg satte opp en scatteringtype av gangen. Startet med kun back scatter, og da den så bra ut gikk jeg videre til front scatter (epidermal og subdermal). Da all scattering var på plass lagde jeg et nytt mia_material og tok outputen på SSS-noden inn i mia_material sin additional color. Slik får jeg det beste fra flere verdener. Man kan også få flere lag med refleksjoner eller spec på denne måten.
Lys og rendering
Jeg satte opp lys med spotlights og directional lights. Brukte quadratic falloff på disse. Det skal nevnes at jeg også brukte gamma correction på teksturene og en exposurenode på kameraet for å få korrekt gamma i renderen. Brukte også Final Gather for å få indirekte lys. Jeg lagde et par rendere i Vue for å få 32 bits spherical environment maps til refleksjoner og indirekte lys. Dette gjorde jeg istedet for å bruke foto fordi jeg da kunne selv avgjøre hvordan himmelen skulle se ut istedet for å være avhengig av vær og lys.
Rendret ikke mange pass, kun et masterpass og ambient occlusion. Trengte occlusion fordi Final Gatheren flater ut modellene litt. Lagde egentlig forskjellige pass til det endelige shotet, men det fikk jeg aldri rendret ut.
Effekter og diverse
Gresset på environmenten lagde jeg ved hjelp av maya fur. Gresset endte opp med å se troverdig ut på en stilisert måte, og definitivt bedre enn Paint Effects sin preset for gress. Jeg brukte imidlertid Paint Effects til planter og trær. De fleste av trærne ser rare ut (for store blader f. Eks), men noen få ser grei ut og mange av plantene går an å bruke. Jeg måtte imidlertid skifte ut shader på samtlige og justere fargene på de. Konverterte da først til polygoner. Paint Effects er et kult konsept og har hjulpet med mye men presetene er ikke gode. Neste gang jeg trenger gress eller planter og trær kommer jeg til å investere i Onyx Tree (speedtree blir for dyrt) eller noe lignende. Det ser bare ikke godt nok ut med de fleste av Paint Effects sine trær og busker. Noen av blomstene ser grei ut og noen få av trærne er brukbare, men totalt sett kan man ikke gjøre seg avhengig av Paint Effects til denne typen objekter.
Brukte også Paint Effects til å lage min egen preset for øyevipper og jeg brukte en preset for øyebryn. Disse tingene (samt hodehår som ble laget med Maya Hair) er ikke med i presentasjonen fordi de ble laget senere enn renderne der (renderne i presentasjonen er fra tidligere i prosessen.
Lyset fra lyktestolpene lagde jeg ved å bruke glow i en lambert shader og brukte incandescence for å bli kvitt det meste av skygger på lyspæren. Jobbet en del med å få til fog i scenen, og testet mange metoder. Det som ser ut til å være den beste metoden uten å involvere Nuke eller Fusion (som jeg ikke kan enda) er å bruke Mental Ray sin transmat/parti_volume til den totale fogen og så bruke fluids til å eventuelt lage tåke som reagerer med objekter. Jeg utforsket både dette og volume primitives men rendertidene skjøt såpass i været at det ble uaktuelt.
En ting jeg lærte meg på denne oppgaven var hvor nyttig instances er. Når man lager en instance istedet for en kopi får ikke det nye objektet en egen shapenode, men istedet for så bruker det shapenoden fra originalen. Da får man ikke den samme footprinten som hvis man hadde bare kopiert alt. Ulempen er at de nye kopiene kan ikke modelleres på utover det transformnoden kan gjøre (med mindre man gjør endringer ved hjelp av displacement). Dette er kanskje noe en mer ulineær workflow kan omgå (som i Max, Softimage eller Houdini). Jeg brukte dette på gjerdene, trærne og gravsteiner.
Konklusjon
Jeg har lært enormt mye av oppgaven. Jeg har fått fordype meg mer i hypershade, jobbet med paint effects en del, fordypet meg mer i Mental Ray enn før (blant annet i forbindelse med Approximation-noder), displacement, Z-brush, anatomi (har lært veldig mye jeg ikke visste om muskler, skjelettet og generelt om formene på kroppene og ansiktene våre) og om teksturering.
En litt bitter ting ved å lære så mye i løpet av en oppgave er at jeg nå kunne gjort oppgaven mye bedre. Sånn vil det vel alltid være, men det er likevel litt surt når jeg nå ser på oppgaven og vet at jeg ville vært kjempefornøyd for noen måneder siden men kunne gjort det bedre om jeg startet nå.
Nå ser jeg fram til en sommer med mye 3D-arbeid for så å starte på andre året på Idefagskolen.