Fény renderelése a Darkspore-ban

Megosztom az iWiW-en! Megosztom a Facebook-on! Megosztom a Twitter-en! Hozzáadom a Google könyvjelzőimhez! Hozzáadom a Startlapomhoz! Megosztom a MySpace-en! Könyvjelző és megosztás
Jómagam nem vagyok túl jártas a 3D-s technikákban, de igyekszem érthetően elmondani, mi is az a "renderelés" azok kedvéért, akik most hallanak róla először.  A renderelés az a folyamat, melynek során a számítógép előállítja a végleges grafikai hatásokat. Tehát megtervezünk egy karaktert, az még nem renderelés, csak ha hozzáadjuk a fényeffektusokat, textúrákat... stb. Remélem valamennyire érthető volt. Na és most akkor a Darkspore.
"Üdv,David vagyok, de a Maxisnél csak "DLS"-nek szólítanak. A Darkspore "főmérnöke" vagyok, és egyben a három grafikus egyike aki a projekten dolgozik (Szia Alec és Ryan!).

Arra gondoltam srácok, hogy kicsit bemutatom nektek a renderelést (főképp a fénykezelést). A Darkspore egy úgynevezett "alkalmazkodott renredelőt" használ, ami meglehetősen új és eléggé különbözik a Spore-tól, de sokkal jobban beválik a közelgő játéknál.

Megpróbálom elmagyarázni, hogy is működik az alkalmazkodott renderelő úgy, hogy (remélhetőleg) mindenki megértse. Eközben szeretnék megmutatni néhány dolgot, hogy hogyan is rajzoljuk meg a környezetet a Darkspore-ban. Minden kép, amit látni fogtok a játék éppen futó hibakereső változatából valók (ez péntek éjjel, mielőtt hazamentem a hétvégére - mert olyan lelkes voltam :D). Készen álltok?

Na nézzünk körbe kicsit a környezeten, a Zelem's Nexus-on, a szerkesztőben. Ez a környezet már látható volt a demókban (elég régen), tehát már bepillantást nyerhettünk az eddig elkészült helyszínre.



De nem úgy, ahogy most! Ez egy madártávlati nézete a játékszint kezdőhelyének. Ezt így a játékban te nem fogod látni, de nekem kézenfekvő, hogy megmutassam a fényeket, a világítást. Nézzük meg a hibakeresőt úgy, hogy a fényforrások hatáskörét bekapcsolom:



Minden dróthálós labda egy "pont fény" - ha nem ismered azt a kifejezést, akkor gondolj úgy rájuk mint fénygömbökre, amiknek a fénye egyetlen pontból jön és minden irányba terjed (hatásuk a körülhatárolt területeken van). Ők csak a fények egyik típusa azok közül, amit használunk. A többi helyi fényhatás közé tartozik a reflektorfény, a vonalfény, és van olyan is amit globális fénynek nevezünk, de maradjunk egyszerűek.

Most nézzük a zöld világítást az energiahíd tetején.



Látod azt a zöld fényt a földön, ami úgy néz ki, mintha az energia hídból jönne? Ez abból a fényforrásból jön, amit bekarikáztam a madártávlatból - a fényforrást a mi grafikusaink helyezték el. Ők helyezik el az ilyen fényforrások százait ezen a szinten, ezzel adva finom és drámai megvilágítást a jelenethez. Most nézzük, hogyan járul hozzá a fény a jelenethez:



Ezen a képernyőképen látható a szétterjedt fény. Gondolj erre, mint egy képre ami csak a fényt mutatja, semmi mást (mindenféle objektum nélkül - egyfajta "fény felszín"). Láthatod ahogy a fény megvilágítja a talajt. A fény most sokkal fényesebbnek látszik mint a fentebb a képeken, ez azért van mert itt szabályozva/modulálva van (meg van szorozva), a fenti objektumok színe által (pl.: amelyek sötétebbek és  még is visszaverik a fényt, azoknak láthatóan csökken a szerepe).

Ez egy másik típusú megvilágítás - a tükröződő fény. Nézd csak meg:



Itt egy kép, amin csak a tükröződő fény látható. Mint láthatod, csak azok a megcsillanó részek láthatók, amik visszaverik a fényt. Ezek a fajta fények hozzá lettek adva a jelenethez. Most lássuk, hogyan is dolgoznak a fények. Először is, szükségünk van úgynevezett "normálokra". Nézd csak meg ezt:



Színes, akár a cukorka - he?

Most egy kis matek. Ez itt srácok három komponens vektor (x, y, z), lényegében ezek merőlegesek minden pixelre az objektumok felületén.

Képzeld el ezt úgy, hogy ezek kis nyílhegyek a felületről indulnak, és a felület durvaságát követik.

Elég nehéz a nyilak százezreit figyelni, ezért színek formájában ábrázoljuk őket, a piros az x, a zöld az y, és a kék a z. Szóval például ahol pirosat látsz, ott a nyilak hegyei sokáig pozitív irányba mutatnak az X tengely mentén.

Oké, még egy dolgot szeretnék nektek mutatni, és utána beszélek arról, hogyan kalkuláljuk ki a világítást, ezekkel a vicces normálokkal.



Ezt úgy hívjuk, hogy "mélység csiszoló". Azok a dolgok amiket sötétnek látsz, közel vannak hozzád, amiket világosnak azok távolabb. Arra használjuk mindegyik pixel mélységét és képernyő-koordinátáját, hogy a felszín pixelei alatt lévő felszín pozícióját megtalálják. Szükségünk van erre a pozícióra a fény kiszámításához.

Oké, na lássuk, hogyan is kalkuláljuk ki a fényt ezen normálok és pozíciók segítségével. De először is figyelmeztetlek - nem vagyok művész. Szóval kérlek bocsásd meg nekem ezt az egyszerű diagramot:



Oké, most képzeld el, hogy a fekete vonal a felület és a zöld nyíl a merőleges (merőleges a felületre abban a pontban). A másik vicces fekete dolog ami úgy néz ki, mint egy rakétahajó, valójában egy szemgolyó az én verziómban. A szemgolyó lefele néz a sötét lila nyíl mentén, ahhoz a ponthoz amit meg akarunk világítani. A kék nyíl hegye a fény felé mutat (a sárga vonalak a napra emlékeztetnek), a halvány lila nyíl reprezentálja a sötét lila nyíl visszapattanását, mint ha kipattant volna a felületről, akár csak egy biliárdgolyó.

Megvan? Oké -  a kék nyíl (ami a fényfele mutat) és a zöld nyíl (a merőleges) távolságától függően,  a fény sokkal ragyogóbb lesz. Ha a közeli fény a felületre mutat, fényesebb lesz tőle. Végül, ha egy erősebb fény (mondj 100 wattos villanykörtét negyven helyett) mutat a felületre, az világosabb lesz annak hatására. Ezek mind belekerülnek a kalkulációba, ami elkészítette a "szétszórt fény együttműködése" képet.

Most nézzük a kék és a halvány lila nyilat, amik közelségétől függően kerül bizonyos mennyiségű és nagyságú fény a "szembe". Kombináld ezt azzal, hogy milyen csillogó a felület, ezek segítségével készítettük a "tükröződő fény" képet fentebb.

Itt látható, milyen csillogóvá tették a dolgokat a grafikusok a Zelem's Nexus-on:



A fehér részek a képen, a fényesebb részek. Nézd meg a "tükröződő fény" képet megint és fogadok, hogy látni fogod a kapcsolatot.

Oké, itt ez a kép megint de most kikapcsoltam a globális világítást, szóval láthatod a szétszórt és a tükröződő fények közreműködését tisztán, csak a lokális pontfénnyel megvilágítva:



Most kérdezhetnél magáról az energiahíd testéről is. Az is világít nem? Nos nem. Egyszerűen csak meg lett rajzolva, és ekkor hozzá adták a ragyogás. Itt látható a ragyogás csiszolva, mielőtt elmostuk és visszaadtuk a jelenethez:



Most tisztán látod a hidat, szóval tényleg ragyog. Ezzel értük el, hogy úgy nézzen ki, ahogy kinéz.

Figyelmeztettelek, hogy amiket az imént mutattam neked, azok nem lettek rögzítve. Amióta ez a jelenet kész, a változásoknak nincs hatása a fényekre, és nincsenek új információk beírva a fények csiszolásához.

Úgy vélem, ez egy kis ízelítő volt. Nagyon sok dolog zajlik a színfalak mögött, mint például fénytervezés, fényhatások, árnyékok, árnyék válogatta fények, animált fények ... stb. de hagyunk egy kis meglepetést a következő alkalomra is!

Köszönet az olvasásért, remélem tetszett!

-dls (aka MaxisDave)"




  « vissza a főoldalra  

A hozzászóláshoz be kell jelentkezned. Ha még nincs azonosítód, regisztrálj oldalunkon!

  Hozzászólások4  

Mythbuster

2010-08-18 00:04:20 [4]

Na kicsit csiszoltam rajta.

Mythbuster

2010-08-17 23:44:32 [3]

Majd igyekszem javítgatni, meg hasonlók

kz009

2010-08-17 23:33:11 [2]

Csak elnézik neked

Mythbuster

2010-08-17 17:08:55 [1]

Bocsánat, a néhány helyen előforduló furcsa fordításért. Két hete fordítom, igyekeztem minél érthetőbb lenni, de néha még én is belegabalyodtam, hogy miről is van szó.

Adatlap

Darkspore

megjelenés:

2011. Április 28.

fejlesztő:

Maxis

kiadó:

EA

Web
Kapcsolódó cheat:
Kapcsolódó videó:

  tovább az adatlaphoz...

Legfrissebb hírek

Legfrissebb letöltések

Mai top játékok

A hónap legnépszerűbb hírei

Pcguru.hu