Ha eddig még nem de egyszer biztosan belefutsz olyan kérésbe, hogy kellene egy nagy formátumú rendert készíteni valamiről. Pl . egyik munkádat kiállítják és plakát méretűre kell húzni. De ilyen kérdések előfordulnak az épviz. területen dolgozó kolegáknál is. Képzelj el olyan 10x10K-s rendereket. Meg se próbáld egyben lerenderelni :) Mostani cikkemben kifejtem hogy csináld :)



Első lépésként készíts egy nagyon egyszerű jelenetet. Én összerakok egy egyszerű Cornell box-ot hogy legyen egy kis Indirect fényelés is a jelenetben.

 Ha elkészítesz bármilyen lámpát és bekapcsolod a raytrace árnyék számítást, akkor mindig nyisd meg a lámpa Attribute Editorát és a Raytrace Shadow Attributes részben vedd magasabbra a Ray Depth Limitet. Nálam ez az érték alapból 5 szokott lenni.


 A jelenet rendereléséhez Mental Rayt fogok használni. Első körben teszteket fogok készíteni. Tehát low quality rendereket alacsonyabb felbontásban. Ha minden stimmel akkor indítom el a nagy felbontású renderelést. Berakok egy új kamerát is hogy mindig egy megadott nézetből készüljön el a render. Ha már Cornell Box, bekapcsolom a Final Gather-t is hogy kicsit bonyolítsam a dolgot.


Hogy hasonló végeredményt kapj a következőket mindenképp állítsd be:


Common tab:
Image format: .tif
Renderable Camera: camera1
Image Size: 640x480

Indirect Light tab:
Final Gathering: on
Primary Diffuse Scale: 1.5
Secondary Diffuse Bounces: 3

Nagyon fontos! Ha Final Gathering is van a jelenetben mindig le kell számoltatni lemezre. A nagy felbontású renderek úgy készülnek el, hogy egyszerre mindig csak a kép egy kis részét rendereljük. A végleges kép így több kis renderből fog összeállni. Nem nehéz kitalálni mi lesz a végeredmény akkor ha a Final Gather minden kis képen újra lesz számolva. Enyhén szólva illesztési problémák adódnak majd :)

A Final Gather kiírása nagyon egyszerű. Az Indirect Lighting fülön a Final Gathering résztén találsz egy Final Gathering Map részt. Oda a Primary Final Gather File mezőbe beírsz egy filenevet. Lehet az bármi, még kiterjesztássel sem kell bajlódnod.
Ha megvan, készíts egy újabb rendert. Ezzel egy időben a Mental Ray kiírja a fényszámítás eredményét lemezre. A következő rendert már úgy készítsd el hogy a Rebuild-ot Freeze-re állítod. Azt tapasztalod majd hogy a render sokkal gyorsabb lett mert az FG (Final Gather) nem számolódik le ismét. Azthiszem minden készen áll a tesztekhez. Jöhet a Command Line renderrel való ismerkedés :)

A Command Line nem más mint az a kis dos-os ablak ami a Start menü Accessories-ból indítható el. Vagy egyszerűbb módon írd be a futtatásba hogy cmd.
Mayából úgy is tudsz renderelést indítani, hogy nem kell hozzá a mayát elindítani, megnyitni a jelenetet stb... Ez egy nagyon kényelmes és gyors módja a renderelésnek, feltéve hogy ismered mit kel ide írni. Kezdésnek egyszerűen írjuk be ezt:

render -r mr largeScaleRender.mb

A render a mayabatch.exe elindításának parancsa. Ezt követi egy flag -r és a renderengine neve. A mi esetünkben Mental ray ami rövidítve mr. Aztán beírhatod a renderelni kívánt fájl nevét. Kisvártatva elindul a mayabatch.exe és lerendereli a megadott fájlt. Az hogy a fájlnév elé nem kell pontos elérési utat is megadnod azért van, mert a maya a legutoljára használt project-ben keresi a fájlt. Ebből következik az hogy renderelés előtt győződj meg róla hogy a megfelelő projectben dolgozol. Az elkészült képet az images könyvtárban találod.

Ha nem használsz más flag-eket a render parancs után, a renderelés a Render Settingsben megadott és elmentett beállítások alapján fog végrehajtódni. Ezeket a beállításokat azonban itt lehetőséged van felülírni. Pl. választhatsz másik kamerát és vagy megadhatsz nagyobb felbontást anélkül hogy megnyitnád újra a mayát. Ha kíváncsi vagy milyen elérhető flag-ek vannak írd be a következőt:

render -r mr -help

Szép hosszú listát kapsz majd a használható flag-ekkel. Az itt felsorolt lehetőségek közül mi most a -reg flagre fogunk koncentrálni. Ez az opció lehetővé teszi hogy az adott képfelbontásnak csak egy régióját rendereljük le a többivel nem foglalkozva.

A -reg opció után mindig 4 db számot kell megadni ami definiálja az X tengelyen majd az Y tengelyen a kép régiójának méreteit. A lenti képen felrajzoltam hogy képzeld el a dolgot.
Ez alapján a render mindig a bal alsó sarokból indul és az én tesztrenderem méreteit figyelembe véve az első régió az X tengelyen 0-320-ig az Y tengelyen pedig 0-240-ig tart. Ha felbontod a képet négy külön darabra nem árt ha minden darab külön fájlnevet kap. Ezt teszi lehetővé az -img opció. Az első régió renderelése így fog kinézni:

render -r mr -reg 0 320 0 240 -im tile01 largeScaleRender.mb

A render végeztével az images mappában megtalálod a végeredményt. Látni fogod hogy a képen csak a végleges kép bal alsó sarka szerepel. Ez alapján már csak ki kell számolni a többi régió dimenzióit is és megírni hozzá a megfelelő sorokat.

Én négy részre osztottam fel a képet így összesen négy sort kell beírnom. A képrészletek renderelését egyszerre fogom elindítani, tehát egy bat file-t fogok készíteni. Ez nagyon egyszerű. Nyisd meg a notepad-ot és írd bele a régióknak megfelelő sorokat egymás alá, majd ha vágeztél mentsd el .bat kiterjesztássel.


Ezt követően ha mindent jól csináltál már csak dupplaklikk a fájlon és a maya szépen egymás után lerendereli a képet a beállításoknak megfelelően. A képrészleteket én Photoshopban szoktam összerakni.

Ebből a gyakorlatból nem csak azt tanultad meg hogy renderelj ki egy nagyobb képet kisebb részletekben, hanem azt is, hogyan használd a maya command line rendererjét. Később jól jöhet ha pl. több fájlt szeretnél lerenderelni egymás után, de nem akarsz a gép előtt éjszakázni Akkor csak megírod a .bat fájlodat és mehetsz is haza. A többi megy magától :)

3 megjegyzés:

  1. Ez egy nagyon hasznos post lett. Jöhet még több ilyen!

    VálaszTörlés
  2. Valóban szép, tartalmas bejegyzés! Good work!

    VálaszTörlés
  3. Igen, nagyon hasznos, és működik:)
    De (kezdő kérdés következik:)
    Ha a Maya file nem a C:-n található, hanem mondjuk a D:-n, vagy esetleg a hálózaton,a command line nem indul el, és nem futtatja le a .bat file-t. Csak a C: -n fut (winXPx64, Vistax64). (hiába van meg .bat fileban az elérési út (helyesen megadva) valamint a system environments variables-ben is meg van adva a Maya elérési útja, tehát látja a rendszer, a maya file renderelődik is más meghajtón windows shell-ből (jobb egér: render) command line renderer-el, csak .bat fileból nem. Mit csinálok rosszul? Hogyan lehet más meghajtón futtatni .bat file-t? Feltételezem, hogy kéne működjön más meghajtón lévő fájlból is.

    VálaszTörlés