053 – Jelenetek Textúrázása VIII. – Csillanási térképek (Specular-map) létrehozása Kis sci-fi példajelenetünk textúrázásának oroszlánrészén immár túl vagyunk, de még hátra van néhány „apróság”, ami drámaian növeli eddigi munkánk vizuális értékét. Ebben első helyen áll egy olyan érték (Value) alapú textúrakészlet elkészítése, mely azt határozza majd meg, hogy az egyes felületek miként és mennyit verjenek majd vissza a rájuk eső fényből. Ezek a csillanási térképek (Specular-map), melyek lényegüket és működésüket tekintve valamelyest hasonlítanak a már elkészített felületi domborzat térképekre(Bump-map).
Futómű Futo_ modelljeink esetében nem olyan bonyolult a dolgunk a csillanási térkép (Specularmap) elkészítését illetően. Kezdetnek visszatértünk a GIMP képszerkesztőhöz, amiben megnyitottuk a futómű felületi domborzat térképének (Bump-map) elkészítése során archivált Futo_BumpWork_001.xcf képfájlt.
Itt ugyebár egyelőre két réteggel rendelkezünk, egy HEIA_Futomu_acélalap.png nevűvel, ami az alap fémanyag szürkeárnyalatos mintázatát tartalmazza, illetve a HEIA_FUTO_Diff nevűvel, ami minden más mintázatot. Igen ám, csakhogy ezen az utóbbi rétegünkön megtalálhatók olyan objektumok grafikus elemei is, melyek egyáltalán nem vernek semmi fényt vissza. Ezek az objektumok pedig nem mások, mint a futómű gumiabroncsai. Ezért még szükségünk volt egy olyan maszkra, amely a gumikat takarja majd. Ennek elkészítéséhez kicsit vissza kellett térnünk a Blenderhez, egy maszkfestés erejéig. Itt csak a Futo_ modelljeink és a bevilágítás (Lamps), valamint a kamera (Camera) 3D rétegét (3D Layer) hagytuk bekapcsolva. Szerkesztő módba (Edit mode) kapcsoltuk a 3D-nézet (3D-View) 1
ablakot, és mindent kijelölve [A] egy képszerkesztő ablakot (UV/Image Editor) létrehozva a 3Dnézet (3D View) ablak mellé, egy fehér kitöltöttségű GumiMaszk nevű képet hoztunk létre.
Mivel a futóművek esetében csak kicsi képméretet használtunk, elég volt itt is csupán 1k (1024×1024 pixel) méretben dolgozni. Aztán megszüntettük a kijelölést [A], majd a Gumikhoz tartozó Gumi Vertex Groupokat jelöltük ki. A kijelölés megtartása mellett váltottuk át a 3D-nézet (3D-View) ablakunkat textúrafestő módba (Texture Paint Mode) arra ügyelve, hogy a kijelölt oldallap maszkolás (Face selection masking for painting) funkció bekapcsolt állapotban legyen.
Sima, éles szélű ecsetgörbét (Curve) választva fekete festőszínnek kifestettül a gumik kijelölt felületeit. Ebben az is sokat segített, hogy az ecset Occlude, Cull, és Normal funkcióit kikapcsoltuk. Itt érdemes arra is figyelni, hogy a 2,70-es Blender verziónál az ecsetkezelő panelt egy kicsit átszabták, és e három paraméterező az opciók (Options) fülön található, míg az ecsetgörbék az eszközök (Tools) fülön. A festés végeztével a Blender képszerkesztő ablakából (UV/Image Editor) a készre festett GumiMaszk képet elmentettük GumiMaszk_01.png néven. 2
A GIMP képszerkesztőhöz visszatérve aztán ezt az újonnan megfestett GumiMaszk_01.png képünket új, harmadik rétegként nyitottuk meg [Ctrl+Alt+O].
Mivel pedig ezzel minden összetevő rendelkezésünkre állt a futóművek csillanási térképének elkészítéséhez, a GIMP-bők ki is mentettük mindezt [Ctrl+Shift+S] egy immár Futo_SpecWork_001.xcf nevű GIMP-képfájlba ugyancsak archivációs céllal. Lényegében csak ezután kezdődött a csillanási térkép (Specular-map) voltaképpeni felépítése rétegről rétegre. Első lépésként a GumiMaszk_01.png rétegünk keverési, rétegkezelési módját normálról (Normal) átállítottuk szorzásra (Multiply), hogy csak a fekete képrészek maradjanak, és az alsóbb rétegek rajzolatai is láthatókká váljanak.
3
A legalsó, HEIA_Futomu_acélalap.png réteg képviseli futómű modelljeink azon felületeit, melyek a leginkább vissza fogják majd verni a rájuk eső fényeket. Ennek értelmében a színszinteket e rétegen úgy korrigáltuk, hogy ne legyenek rajta erősen kontrasztos foltok, és valamivel világosabb legyen, mint amilyen eddig volt.
Mivel a GumiMaszk_01.png rétegünk fekete színe fogja biztosítani számunkra, hogy a gumifelületek semennyire se verjék vissza a fényt, vagyis semennyire se csillogjanak, már csak a HEIA_FUTO_Diff réteget kellett kicsit megváltoztatnunk, ami a gyakorlatban szintén nem jelentett sokkal többet a színszintek enyhe korrigálásánál.
Az elkészült módosításokat tartalmazó Futo_SpecWork_001.xcf képfájl tartalmát ezt követően kiexportáltuk [Ctrl+Shift+E] Futo_Spec_01.jpg néven egy új képfájlba.
4
Futómű modelljeink csillanási térképének (Specular-map) alapjául szolgáló képfájl elkészülte után visszatértünk a Blenderhez. Itt a Futo_ modellek összes textúrarétegét kikapcsoltuk, valamint az anyag panelen (Material) leellenőriztük, hogy a csillanás alapértelmezett mértéke (Specular Intensity) vissza van-e véve 0,000 értékre, mert ennyire lesz majd szükségünk, hogy az új csillanási textúránk megfelelően működjön.
Miután ezzel megvoltunk, közvetlen a felületi normális térképek textúrái (Normal-map texture) alá egy újabb, kép típusú (Image or Movie) textúrát Futo_SpecTex néven. Ide aztán betöltöttük a Futo_Spec_01.jpg képfájlunkat, majd az UV-térkép (UV-map) Mapping csoportban történő megadását követően az Influence csoportban ténykedtünk tovább.
5
Kikapcsoltuk a szín (Diffuse Color) paraméterezőt, és a csillanás intenzitás (Specular Intensity) paraméterezőt aktiváltuk utána az alapértelmezett 1.000 értéket változatlanul hagyva. Ekkor még nem történt semmi, mert ehhez be kellett kapcsolnunk az RGB to intensity funkciót is, hogy a Blender a textúrába betöltött kép képpontjainak adatait ne szín információként, hanem adattömegként kezelje. Ennek pontos megjelenítéséhez pedig az alapértelmezett magenta színt is meg kellett változtatnunk fehérre, amely a maximális érték megadásáért felel a továbbiakban.
6
Amikor már megjelentek a GLSL módban lévő 3D-nézet (3D View) ablakban is a modellek felületein a csillanási, fényvisszaverődési eltérések, a jobb hatás érdekében a csillanás mértékéért felelős Specular Intensity paraméterező értékét 0,500-re csökkentettük.
A továbbiakban a Futo_SpecTex textúrarétegünk mellé visszakapcsoltuk az összes olyan textúraréteget is, mely a Futo_ modellek eddigi textúrázásának készültségi fokához szükséges. Diffúz szín (Diffuse Color) rétegnek a Futo_AlapTex és a Futo_J_FestDiff textúrarétegeket kapcsoltuk be. Felületi domborzat szimulációs (Bump Mapping) rétegnek pedig a Futo_BumpFull helyett inkább a némileg hatásosabb Futo_Normaltex textúraréteget kapcsoltuk be egy jó minőségű tesztrender lefuttatásához.
A géptest Sci-fi vadászgépünk központi eleme, vagyis mintajelenetünk fő alkotóegysége, a HEIA_Body modell csillanási térkép (Specular-map) tekintetében ugyancsak fontos és viszonylag sok munkát és odafigyelést igénylő objektumnak ígérkezett. Nemcsak a sok anyagréteg és a felületek sokrétűsége miatt, hanem mert ahogyan a diffúz szín (Diffuse Color), valamint a felületi domborzat szimulációs (Bump-map, Normal-map) eljárások és textúrarétegek esetében, úgy ez esetben is két állapotnak megfelelő verziót kellett létrehoznunk. Egy vadonatúj gyári, és egy viseltesebb, kopott változatot. Munkánkat a géptest modelljének esetében is a GIMP képszerkesztővel kezdtük, amelyben legelőször a HEIA_Body modell felületi domborzat térképének (Bump-map) elkészítése során archivált HEIA_Body_BumpWork01.xcf képfájlunkat nyitottuk meg. Az egyszerűség kedvéért a GyariBump és a KopottBump rétegeket, melyek voltaképp kész textúraalapanyagokat tartalmaztem amikre most semmi szükségünk nem volt, töröltük. A többi réteg láthatóságát kikapcsoltuk, hogy alulról felfelé haladva építhessük fel a géptest csillanási térképeit. A biztonság kedvéért azonban ezt az XCF fájlt elmentettük még egyszer, ezúttal HEIA_Body_SpecWork01.xcf néven. A legalsó, HEIA_Body_Nyersalu.png réteget visszakapcsoltuk, és a színszintek módosításával világosabbá tettük, valamint csökkentettük a kontrasztosságát is. Erre azért volt 7
szükségünk, mert a géptest fémes alapanyaga veri majd vissza a legjobban a fényt, ezért ennek kell majdnem a leginkább világosnak lennie.
Visszakapcsolva a következő, GyáriFestés réteget, a hozzá csatolt rétegmaszk láthatóságát átmenetileg kikapcsoltuk, majd a réteg teljes felületét kitöltöttük a 696969 HTML jelű szürke színnel. Ez lesz a felelős a géptest festésének fényvisszaverő, csillanási képességéért, aminek értelemszerűen gyengébbnek kell majd lennie, mint a fém alapanyagnak.
A Sérülés_Karbon, a Serüles_Törzs_02.png, és a Sérülés_Üveg_02.png rétegekre a gyári állapot létrehozásához nem volt szükségünk, ezért ezeken egyszerűen túlléptünk és kikapcsolt állapotban hagytuk őket. A Sérülés_Üveg.png másolata rétegünkre ezúttal pedig már egyáltalán nem volt szükségünk, ezért töröltük akárcsak a Carbon_03.png és a Szegecsalap_02.png rétegeket 8
is, mivel ezeknek nem volt lényeges közük a modell csillanási képességeihez. Nem úgy a Diffuse_Fix_01.png rétegnek, amely csaknem az összes olyan felület rajzolatát tartalmazta, amely egyáltalán nem volt fényvisszaverő felület, vagyis egy megfelelően kialakított csillanási térképen (Specular-map) e területeknek feketéknek kellett lenniük. Hogy ez itt is így legyen, a rétegen kijelöltük a teljes alfa-csatornát, majd a kijelölést fekete színnel ki is töltöttük. Ekkor már majdnem készen voltunk, de egyetlen egy aprócska részlet még hiányzott. Ez pedig nem volt egyéb, mint sci-fi vadászgépünk kabinjának teteje, amely a rá eső fényt egy az egyben visszaveri, vagyis egy csillanási térképen teljesen fehér felületként kell megjelennie. Ezt úgy hoztuk létre, hogy a géptest diffúz mintázatának elkészítése során használt Maszk_Kabin.png képfájlt egy újabb rétegként megnyitottuk [Ctrl+Alt+O] és a réteg keverési módját normálról kivetítésre (Overlay) állítottuk át. Mindezek eredményeként egy több rétegből álló összetett képszerkezetet hoztunk létre. Minden réteget bekapcsolva hagytunk, majd az összes réteg együttes hatásáról másolatot készítettünk a vágólapra [Ctrl+Shift+C]. és egy új, Spec_Gyari nevű új rétegre illesztettük vissza [Ctrl+V].
A színszintek minimális korrigációja után a kész eredményt HEIA_Body_Spec_Gyari01.jpg néven exportáltuk ki [Ctrl+Shift+E] a GIMP képszerkesztőből. A kopott változat elkészítéséhez a GIMP-ben kikapcsoltuk a Spec_Gyari réteg megjelenítését, a GyáriFestés réteghez pedig visszakapcsoltuk a hozzá csatolt rétegmaszkot. A következő képréteg amelyet visszakapcsoltunk, a Sérülés_Karbon réteg. Mivel e réteg rajzolatában a fekete rajzolat adja meg a sérülések mintázatát, és nekünk csak ezekre volt szükségünk, kicsit jobban bele kellett nyúlnunk itt a réteg tartalmába, de egyáltalán nem túl drasztikusan. Elegendőnek bizonyult a réteg keverési módját gyenge fényről (Screen) szorzásra (Multiply) állítani, a láthatóságának mértékét pedig visszavenni 60%-ra. Az e felett álló Serüles_Törzs_02.png réteggel csupán annyi volt a dolgunk, hogy a láthatóságát csak kisebb mértékben, mintegy 80%-ra vettük vissza, míg a Sérülés_Üveg_02.png réteggel pedig mindösszesen csak annyit tettünk, hogy visszakapcsoltuk. Az így létrejött látható végeredményről ismételten másolatot készítettünk a vágólapra [Ctrl+Shift+C], majd egy újabb, Spec_Kopott névvel létrehozott rétegre illesztettük vissza [Ctrl+V]. Itt ugyancsak igazítanunk kellet minimális mértékben a kapott eredmény színszintjein, majd egy újabb kiexportálás [Ctrl+Shift+E] következett a GIMP-ből egy újabb 9
HEIA_Body_Spec_Kopott01.jpg nevű képfájlba.
Ezzel el is készítettük Sci-fi vadászgépünk csillanási textúrájának grafikai alapját adó képfájljainkat, és már csak az volt hátra, hogy élesben is kipróbálhassuk őket a Blenderben. Jelenetünkben csak azokat a 3D rétegeket (3D Layers) hagytuk bekapcsolva, amelyeken a lámpák (Lamps), a kamera (Camera), valamint vadászgépünk HEIA_Body nevű modellje el volt helyezve. Ezután a modell összes textúrarétegének megjelenítését kikapcsoltuk, majd az anyag panelen (Material) a csillanás mértékét (Specular Intensity) levettük 0,000 értékre.
A továbbiakban aztán a HEIA_Body objektumunkhoz létrehoztunk egy újabb, Spec_Gyari_Tex névvel ellátott kép (Image or Movie) típusú textúraréteget, és betöltöttük képként 10
a nemrég elkészült HEIA_Body_Spec_Gyari01.jpg képfájlunkat. A textúra panelen (Texture) a térképezés (Mapping) csoportban beállítottuk hozzá a modell UV-térképét (UV-map), majd az Influence panelen dolgoztunk tovább.
Mivel érték alapú (Value) textúrára volt szükségünk, a Diffuse Color paraméterező kikapcsolása és a Specular Intensity aktiválása után az RGB to Intensity funkciót is bekapcsoltuk, majd alapszínként a fehéret állítottuk be.
11
Eztán néhány tesztrender lefuttatása után arra jutottunk, hogy a megítélésünk szerint Specular Intensity paraméterező 1.000 érték mellett a leginkább hatásos ami a végeredményt tekinti. Végezetül pedig megint visszakapcsoltuk a géptest modelljének összes számottevő textúrarétegét, melyek a gyári állapot megjelenítéséért felelősek, úgy mint Diffúz_Gyári_Tex, Normal_Gyari_Tex, és a Spec_Gyari_Tex textúrákat, és így is végeztünk egy jó minőségű tesztrendert, ahol lényegében még csak a géptest plexi fülketeteje csillan erősebben.
A kopott állapot csillanási textúrájának elkészítéséhez egy újabb textúraréteg létrehozására volt szükség. Ez esetünkben egy kép típusú (Image or Movie) textúraréteg hozzáadását jelentette Spec_Kopott_Tex néven, amibe a HEIA_Body_Spec_Kopott01.jpg képünket töltöttük be.
12
Miután beállítottuk a textúraréteghez a HEIA_Body modellünk UV-térképét (UV-map), módosítottuk az Influence panelt is. Ugyanúgy jártunk el itt is, mint a Spec_Gyari_Tex textúraréteg esetében. Kikapcsoltuk a diffúz szín (Diffuse Color) paraméterezőt, majd miután aktiváltuk helyette a csillanás mértékét (Specular Intensity), bekapcsoltuk az RGB to Intensity funkciót is hogy a színinformációk helyett a Blender a Spec_Kopott_Tex textúrarétegbe betöltött HEIA_Body_Spec_Kopott01.jpg kép képpontjait ne színinformációként (Color), hanem érték adatként (Value) kezelje, és ehhez az alapértelmezett magenta szín helyett a fehéret adtuk meg maximális alapértékként. Ekkor már jól láthatóan kirajzolódott a 3D nézet ablakban is GLSL nézetben, hogy a fülketetőn kívül a géptesten azok a részek is erősebben verik vissza a rájuk eső fényt, ahol sérült a festés és kilátszik alóla a fém alapanyag csillogóbb felülete. Néhány tesztrender elvégzését követően arra jutottunk, hogy a Specular Intensity paraméterező alapértelmezett 1,000 értékét változatlanul hagyjuk.
A kifutó Sci-fi jelenetünk kifutópályájának Palya modelljével csillanási térkép (Specular-map) tekintetében nem sok dolgunk akadt, hiszen alapjában véve ez egy száraz, poros betonfelület, amelyre nem túlzottan jellemző semmiféle csillogás, avagy fényvisszaverődés. Kivéve talán az erősen vizes, nedves állapotot, ami például közvetlen egy nagy eső után lehet elképzelhető. Egy próbát azért mégis tettünk a kifutópályánkkal csillanási-térkép ügyben. Ehhez azonban szerencsénkre nem igazán kellett újabb képet létrehozni,mivel elméletileg az erősen vizes betonfelületeknek leginkább a magasabb, illetve simább részei viselkednek inkább fényvisszaverő, csillogó felületekként. Ennek okán arra gondoltunk, hogy a Palya modellünkhöz már korábban elkészített, de pillanatnyilag aktívan nem használt Heia_Palya_Bump textúránkat fogjuk felhasználni erre a célra.
Minden textúránkat kikapcsoltuk tehát a Palya modellünkön a Heia_Palya_Bump textúrarétegünkön kívül. Azért ezt a textúraréteget választottuk, mert a Palya_Bump_Full01.jpg szürkeárnyalatos képfájlt tartalmazza önmagába betöltve. Ezt pedig, könnyűszerrel használhattuk csillanási térképként is. Csupán az Influence panelen kellett a Geometry Normal paraméterező helyett a Specular Intensity paraméterezőjét használni az RGB to Intensity funkció és a fehér értékviszonyítási alapszín megadása mellett. Ekkor már be tudtuk kalibrálni a Specular Intensity paraméterezőjét, hála a 3D nézet ablak (3D-View) GLSL előnézetének. 13
Így jutottunk arra a megfigyelésre, hogy itt 0.300 érték mellet kaptuk a legjobb eredményt. Mindezek után ezt a textúraréteget a rend kedvéért név tekintetében is megváltoztattuk kissé és innen már Heia_Palya_Spec+Bump textúrarétegként hivatkoztunk rá, bár a továbbiakban e textúraréteg már nem lett felhasználva. Miután tehát elkészültek a csillanás térképek (Specular-maps) is, a jelenetünk minden objektumának 3D rétegét (3D-layer) visszakapcsoltuk. Többféle bevilágítással végeztünk tesztrendereket más és más nézetben, hogy a csillanásokat leellenőrizzük még egyszer.
14
15
16