Instance - Vajon mi?

Sokan azt hiszik az instancolás csak annyit jelent hogy duplikálgatunk modelleket és ha az originalba belenyúlunk változnak a másolatok is. Nos ez tényleg így van, de ennél azért több is van a felszín alatt...

Először is nézzük azt hogy kell instancolni.

Két fajtája van az instancolásnak mayában, és biztos vagyok benne hogy más szoftverekben is megtalálható ez a két módszer. AZ első a geometry instance mikor kijelölt modellt instancolsz. A másik a particle instance. Az első esetben amikor egy modellt le akarsz másolni nem a sima CTRL+D-vel teszed ezt (Duplicate) hanem megkeresed az Edit menüben a Duplicate Special menüpontott és ott bepipálod az instance opciót.


Erről ezt írja a manual hogy:
"Create an instance of the geometry being duplicated. When you create an instance, you do not create actual copies of the selected geometry. Instead, Maya redisplays the geometry being instanced."

Tehát igazából nem egy másolatot kapsz hanem a maya az original modellt még egyszer megjeleníti a tér egy másik pontján. Egyszerre két helyen lesz jelen a modelled olyan ez mint a kvantum fizika... :) Ebből következik az hogy ha változtatod az eredeti modellt, pl. új shadert raksz rá vagy alakítasz a geometrián, a másolat, tehát az instance is változik. Kétségtelen hasznos tulajdonság ha egyébként is olyan modellen dolgozol ahol pl sok egyforma alkatrész van. De nézd meg közelebbről is mi folyik a háttérben...

Betöltöttem egy modellt Zbrushból ami jelenleg 114 364 poligon.

A fájlméret ha elmentem 4753 Kbyte lesz.

Az első esetben simán duplikálom a modellt mondjuk 10 szer. Elvileg tízszeresére fog nőni a fájlom.
És igen ahogy számítottam rá

Most nézd meg mi van ha másolás helyett inkább instancolsz. Tehát Edit menü Duplicate Special ablak és ott Instance opció. Megcsináltam a 10 db instance másolatot és láss csodát mi lett a fájlméret:




Magad is láthatod mennyit spórolhatsz ha a jeleneteidben a modelleket, amik egyformák inkább instancolod. De az előnyök nem csak a fájlméretben mutatkoznak meg, hanem akkor is ha renderelni akarod a jeleneted. Sokan panaszkodnak nekem hogy nincs elég memória a gépben és nem tudja lerenderelni a szuperül összerakott helyszínt mert kifagy.... Biztos hogy szuperül van összerakva??

Az iménti jelenetet a 10 db rhinoval lerenderelem de úgy, hogy megkérem szépen a Mental Ray-t írjon ki nekem néhány fontos információt renderelés közben. Ezt úgy tudod megtenni hogy a Render menüben megnyitod a Batch Render ablakot és a Verbosity Level-t átállítod Info Messages-re.
Ha kész a render nyisd meg az Output Window-ot és nézd meg a legalsó sort mit ír a poligonszámról.
Ez pontosan annyi lesz mint az egyik modell felbontása. De csak az egyiké és ez nagyon fontos. A többi, a másolatok lényegében csak újra meg lettek jelenítve egy másik pozícióban, az ő geometriájuk nem számít. És bizony ez nagyon fontos olyan helyzetekben, ahol rengeteg geometriát kell megjeleníteni és renderelni. Gondolj itt az épviz renderekre. Hány egyforma ablak, ajtó, szekrény és még kitudja mi más lehet egy jelenetben. Már talán érted hol tudsz még spórolni ha kifagy a render :)

1 megjegyzés:

  1. Ez is egy hasznos post lett. Anno max-ban nagyon szerettem hogy másolásnál felajánlotta az opciót hogy copy, instance vagy reference legyen a másolt objektum.

    VálaszTörlés