Normalmapkészítés Blenderben

Az előző cikkünkben befejeztük Zorro diffúztextúráját, de sokkal többet kihozhatunk egy karakterből, ha több textúramapot is használunk. Ebben a cikkben normal mapot fogunk készíteni Zorrónak a Blenderben rendelkezésünkre álló sculpt (szobrászat) eszközökkel.

Bármilyen modellnek feljebb tudjuk vinni a polygonszámát, hogy több részletet kidolgozhassunk rajta, ám fontos, hogy figyelembe vegyük a saját hardvereink limitációit, és a technológiai kiskapukat, trükköket is. Előző cikkeinkben már bemutattuk, hogyan kell normal mapot alkotni képből, viszont van lehetőségünk arra is, hogy egy nagy polygonszámú modell részleteit ráégessük, rábake-eljük egy kevésbé kidolgozott modellre, normal map formájában. Az így kapott normalmap megtartja a nagyobb polygonszámú modell részleteit, mégsem terheli annyira a gépet, mintha a részletes modellt próbálnánk renderelni.

Kezdjünk is neki! Első lépésben duplikáljuk a már megalkotott mesht, és rakjuk át egy másik layer-re. Miután átraktuk, apply-oljuk rá a Subsurf modifier-t. Ez a lépés azért fontos, mivel ennél is jóval feljebb fogjuk tekerni a polygonszámot, és ehhez az eredetileg is használt meshből kell kiindulnunk.


Az apply után adjunk a modellünkhöz egy Multires modifiert. Ez a modifier körülbelül úgy működik, mint a Subsurf, csak megtartja az eredeti állapot információit is, így a segítségével többféle textúrát is bake-elhetünk a nagyobb felbontású modellről az alacsonyabbra.


A Multires beállításaiban kattintsunk három alkalommal a Subdivide gombra, ezzel háromszorosára emelve a polygonok számát. Ennél lehet több, de kevesebb inkább ne, hogyha arcon levő részleteket szeretnénk alkotni. Azért van szükségünk ennyi polygonra, mert ezeket most nem vertexenként fogjuk szerkeszteni, hanem sculptolás, „szobrászkodás” által.

A Viewportot állítsuk át Object Mode-ról Sculpt Mode-ra. Ezután a bal oldali toolbar-ban már látjuk is a szobrászkodáshoz szükséges beállításainkat. Kissé hasonlítanak a Texture Paint eszközeire, de fontos különbség, hogy itt a felületeket mozgatjuk, nem a textúrákat színezzük.

Első lépésben próbáljuk ki az alap
Sculpt Draw Brush-t. A Texture Painthez hasonlóan beállíthatjuk az ecset Radius-át, ami a méretet irányítja, és a Strength-jét, amivel a lenyomás erejét tudjuk beállítani.

Ami még innen fontos, az az Add és Subtract gombpáros, amivel meghatározzuk, hogy a jelenlegi ecsetünk a felületet befelé nyomja, vagy kifelé húzza. Az Add a hozzáadás, tehát a felületből kiemelést jelenti, a Subtract pedig ennek az ellentéte.


Mielőtt még nekiállnánk bajszos barátunk arcát formálni, fontos beállítani a szimmetriát, amit szintén a bal eszköztárunkban találunk meg. Ennél az arcnál az X tengely a szélesség, tehát ezt a tengelyt kell aktiválnunk a tükrözéshez. Viszont ahogy a festésnél is, itt is érdemes kikapcsolni néha ezt a funkciót, mivel a tükörtengelyhez közel egyértelmű tud lenni a tükrözés.

 

Rajzoljunk kicsit az arcra, próbálgassuk a beállításokat, és finomítsuk őket ízlésünk szerint. Ahogy a Texture Paintben, itt is használhatunk digitális rajztáblát, és a lenyomás erősségéhez köthetjük a beállítások egy részét.

Ahogy próbálkozunk, előfordul, hogy nem látjuk jól a magasságokat, főleg a sötétebb részeken. Erre a legjobb megoldás az, hogy átállítjuk a Viewportot Material Shading-ről Solid-ra. Önmagában ez nem segít sokat, viszont Solid shading módban tehetünk a modellünkre Matcap-et, amit a jobb oldali eszköztárunk Shading füle alatt találunk. A Matcap-ek egyszerű, beépített shader-ek, amik sokat segítenek a különböző hibák kiküszöbölésében (például a problémás polygontörések elkerülésében).


A megjelenő listából többféle Matcap közül választhatunk — van fémes, tompa, tükörsima, viasz-szerű és még sok más típus. Nézzük át őket, és válasszuk ki azt, amelyikkel karakterünk  arcán a legjobban látszanak a rárajzolt domborulatok és süllyedések. Érdemes sokszor váltani Matcap és Material shading között, vagy megnyitni egy új Viewportot, amit Matcap shading-re állítunk, amíg az eredeti Material beállításon marad.

A Subtract ecsettel alkossuk is meg gyorsan Zorro orrlyukait, amik textúrázott állapotban nem látszottak igazán.
Röviden leírjuk a többi ecset funkcióját:

Inflate/Deflate: a felülettől kifelé vagy befelé felfújja a vertexeket
Flatten: a kiindulóponthoz képest kilapítja a vertexeket
Smooth: lesimítja a felületeket, óvatosabb átmeneteket alkot
Crease: töréseket, "kanyonokat" alkot, tehát összébb húzza és lenyomja a felületet, amivel ráncokat, vagy egymásra nyomódó felületeket formázhatunk — arcokhoz ez különösen hasznos!
Pinch/Magnify: a Crease-hez hasonlóan összébb-, vagy széthúzza a felületet, de süllyesztés nélkül.
Blob: hasonló, mint az Inflate, viszont szó szerint gömb felületet próbál alkotni, ami miatt csak óvatosan használjuk!
Grab: segítségével arrébb húzhatjuk az ecset radiusában lévő vertexeket. Ez előnyös tud lenni, de textúra leképezésénél óvatosan kell használnunk, mivel nem szabad, hogy a nagy felbontású modell nagyon eltérjen pozícióilag az eredetitől.

A most említett típusok csak azok, amiket a mostani szobrászkodásunkhoz használunk, ezeken kívül is van még sok hasznos ecsetfajta!

Miután már dolgozunk egy ideje, esélyes, hogy ejtettünk pár hibát. A hibák kijavításához érdemes Flatten ecsetet használni, amit utána smooth-olunk, de sokszor egy nagyobb Strength értékű Smooth is elég. Smooth ecset használata után viszont nehéz az eredeti állapotukba állítani a vertexeket, tehát mindenképpen vonjuk vissza az ecsetvonást, ha problémásnak érezzük.


Crease Brush-sal összébb húzzuk a felsőajkak szélét, majd ugyancsak Crease Brush-sal subtract módban kiemeltük az orra sarkából kiinduló nevetőráncokat. Ezután Pinch Brush-sal kicsit élesebbé tettük az állat és az állkapcsot.


A bajusz kidolgozásánál muszáj egyszerre két Viewportot használnunk, mivel a fekete arcszőrzeten nem látjuk igazán a térbeli eltérést. A szőrszálakat Crease-zel zajosítottuk, hogy ne tűnjenek annyira egybeállónak.


Az ajkakon levő kis vágásokhoz, bemélyedésekhez érdemes átállítanunk a Sculpt  eszköztárában a Stroke típust Line-ra — így az ecset funkciója megváltozik, és nem rajzolni tudunk vele, hanem egyenes vonalakat húzni. A bemélyedéseket így gyorsan és pontosan megalkothatjuk.

Szintén ezzel a stroke típussal végigmegyünk a maszkon a Pinch Brush-sal, így kicsit élesebbé téve a széleit. A maszk felületén is így a legkönnyebb egyenes bemélyedéseket alkotni.

Egy másik Stroke típus, amit sokszor használunk, az Anchored. Ennek segítségével a kattintás kiindulási pontjától való elmozdulással arányosan nő a brush ereje, tehát finoman be tudjuk állítani, hogy az adott ponton milyen erős legyen az ecsetvonás.

A maszk alatt levő fül-kiemelkedést kicsit érdemes kidolgozni, a maszk felületét pedig mélyedésekkel és kiemelkedésekkel tarkítani az anyag haladási irányával párhuzamosan. A szemöldököt mi kiemeltük — ez nem fontos, viszont ehhez a stílushoz az erős kiemelés működik a legjobban. Az orr formáját is finomítottuk, kicsit kerekebbé tettük.

A bőr felülete jelenlegi állapotában túl sima. Ahhoz, hogy bőrszerűbbé tegyük, szükségünk van egy bőrfelület alfa maszkra, tehát fekete-fehér textúrára, amin a fehér szín a legmagasabb pontot jelöli, a fekete pedig a legalacsonyabbat. Így tudunk textúrát adni a brush-unknak. Alkossunk egy ilyen textúrát, aránylag magas kontraszttal. Ha kimentettük png-be, menjünk a Blenderben a Properties ablakban a Texture fülre.


Ott az első lenyíló menüben váltsunk Brush-ra. Ezután az alatta levő New gomb lenyomása után kapunk egy, az Image alatti szintén New gombot, ami mellett van egy Open is. Utóbbit nyomjuk le, és töltsük be az elkészített textúránkat. Ezután a Sculpt eszköztárában, a Texture bekezdésben ki tudjuk választani a betöltött textúrát.


Ezt a textúrát használhatjuk stencilként, tehát mint képernyőn levő szűrőt, vagy Tiled beállítással, tehát minden stroke-nál rápecsételve a felületre. Próbáljuk ki ezeket a beállításokat, és a számunkra legjobbnak tartott módon rajzoljuk meg a bőrfelületet.


Ne felejtsük ki a szem körüli bőrfelületeket sem. Mi Crease-zel és Anchored stroke-kal, megfelelően nagy radius használatával finoman be tudtuk állítani, hogy enyhe ráncok legyenek a szeme körül. Persze ehhez végül kellett egy kis smoothing is.

Ami még kellhet, az egy enyhe, fekete alapú noise map a borostához. Tehát egy egyszerű noise, amin ritkásan fehér pixelek vannak. Ezt az előzőekben leírt módon betöltöttük és a borosta felületén használtuk egy additív brush-sal. Az ilyen kis részletek miatt érdemes lehet a Multires modifier-t magasabb subdivide-szintre emelni.

Ne felejtsük ki semmiképpen a kis részleteket — nálunk például egy enyhe vágásnyomot is ki kellett emelnünk karakterünk arcán.

Ha elkészültünk, ideje bake-elnünk a szobrunkat!

Ehhez először is át kell lépnünk a Properties ablak Render fülébe, azon belül is a Bake bekezdéshez. Ott a Bake Type lenyíló menüjéből ki tudjuk választani a Normal-t. Emellett még érdemes a Margin-t kicsit behangolni — ez az érték határozza meg, hogy hány extra pixel "folyjon ki" a leképezett felületről a UV-n. Ennek jelenleg elég pár pixelnek lennie.

Alapértelmezett módon ha megnyomjuk a Bake gombot, akkor a legmagasabb Multires állapot képeződik le az eredeti modellre, ez nekünk most megfelelő. Nyomjuk meg a Bake gombot, ez időbe fog telni, legyünk türelmesek.

Amint elkészült, az Image ablakban láthatjuk is az eredményt, persze csak az egyik textúráról. Ott van a többi matériáról leképezett normal is, csak meg kell keresni, és mindenképpen más néven elmenteni, mivel esélyes, hogy a már létező textúrát írta felül.

Miután kimentettünk minden leképezett normal-t, töltsük be őket az adott matériánk Normal textúrájába. Ne felejtsük a színeket tartalmazó textúráinkat újra betölteni.

Ezek után, ha renderképet nézünk a művünkről, láthatjuk is az eredményt, tehát, hogy a kis felületi eltérések síkban fény-torzításként látszanak.

Ugyanezzel a módszerrel alkothatunk sokféle bonyolult formából egyszerűbb, kevésbé terhelő modellt normal textúrákkal. Persze az ilyesmi a leghasznosabb a videojátékokban, de ha az ember nem akar szerverparkot bérelni egy rendereléshez, akkor érdemes spórolni az erőforrásokkal.

MEGOSZTÁS:
Meshmag