Materiály
Termínem materiály označujeme definice textur. V těchto definicích přiřazujeme různé vlastnosti a funkce jinak statické textuře načtené z bitmapového souboru. Engine definice materiálů načte a aplikuje požadované vlastnosti. Příkladem takových vlastností materiálů mohou byt různé druhy průhlednosti, přechodů nebo vlastností, jak se má objekt s daným materiálem chovat ve hře – pokud například u materiálu specifikujeme „noShadows“, v mapě pak objekt nevrhá stíny. V současné době Doom 3 engine podporuje následující bitmapové formáty pro textury.
.tga – Dnes nazývaný jako Targa formát, původně vyvinutý společností Truevision v osmdesátých letech, formát je schopen uložit hloubky 8, 16, 24 a 32 bitů (24 bitů + 8 bitů alfa kanál – průhlednost), rovněž podporuje bezztrátovou RLE kompresi.
.jpg – Tento formát vyvinula v devadesátých letech Joint Photograph Expert Group (odtud název JPEG), umožňuje ukládat 24bitové rastry a díky volitelné míře ztrátové komprese nabízí přívětivý poměr kvality obrazu a výsledné velikosti souboru.
.dds – Koncovka tohoto formátu vznikla ze zkrácení názvu DirectDraw Surface. Tento formát vyvinul Microsoft pro DirectX, ale v současnosti je využíván i v konkurenčním rozhraní OpenGL. Formát je schopen uložit textury a krychlové mapy prostředí, a to jak v komprimované, tak nekomprimované podobě. Rovněž podporuje 32bitové rastry.
Abychom plně využili potenciálu technologie jednotného osvětlení v enginu, je třeba všechny materiály skládat z několika složek. Základní složkou je „diffusemap“, která udává barevnost. Dále máme „specularmap“, kterou definujeme, jak moc materiál odráží světlo. Specularmapa je tvořena bitmapou, která může být jak plně barevná, tak i ve stupních šedé. A poslední, ale neméně důležitou složkou je „bumpmap“, tato textura simuluje plastický povrch, a vytváří tak dojem daleko detailnější geometrie (viz obrázek č. 29).
V id Tech 4 enginu můžeme bumpmapy vytvořit dvojím způsobem. Prvním způsobem je použití „heightmap“, které jsou rovněž bitmapy ve stupních šedi. Čím blíže je odstín k bíle, tím se bude povrch zdát vystouplejší, naopak čím tmavší odstín, tím se daná oblast bude jevit hlouběji. Výhodou heightmap je možnost jejich snadné tvorby a úpravy v jakémkoli bitmapovém editoru. Naopak nevýhodou je malý počet odstínů (256), což nám neumožní, zvláště ve větších texturách, vytvořit plynulé přechody.
Druhým, lepším způsobem, který je však zároveň i složitější, je použití „normalmap“. Jeho složitost spočívá v tom, že nejsme schopni normalmapy sami vytvořit v bitmapovém editoru. Pro vytvoření korektní normalmapy musíme použít program (např. ZBrush, CrazyBump …), který nám takovouto bitmapu vypočítá.
Pro představu si uvedeme příklady jednotlivých bitmap. Na obrázku č. 30 můžeme vidět složky materiálu pro kyselinu ze hry Doom 3.
Definice materiálů ukládáme do textových souborů s koncovkou „mtr“ do adresáře „materials“ v hlavním adresáři „base“. Na jednu takovou jednoduchou definici se nyní podíváme. Význam jednotlivých řádků je popsán v komentářích (komentář je uvozen „//“) v příkladě uvedeném níže.
textures/object/windowpane2 //jméno materiálu { //Globální vlastnosti materiálu //textura používaná v DoomEditu qer_editorimage textures/object/windowpane2.tga twoSided //materiál má obě strany (běžně se zobrazuje jen přední) noshadows //materiál nevrhá stíny glass //materiál je sklo – ovlivní zvuky { //definice diffusemapy s použitím alfa kanálu blend diffuseMap map textures/object/windowpane2_d.tga //cesta k bitmapě alphaTest 0.5 //úroveň oříznutí průhlednosti pro alfa kanál } //definice specularmapy specularmap textures/object/windowpane2_s.tga //definice bumpmapy bumpmap textures/object/windowpane2_local.tga }
Tip: Nejrychlejší způsob, jak se naučit vytvářet vlastní materiály, spočívá ve studiu materiálu již hotových, obsažených ve hře Doom 3. Procházení těchto definic a následné úpravy vedou k brzkému pochopení jejich funkcí.
Kapitoly lnku: