Train_Light_map _with_Diffuse. Fx

Shadery a materiály pro RW3
Josef72
Moderátor a modelář
Příspěvky: 806
Registrován: sob 28. bře 2009 13:37:36
Bydliště: Proboštov / Teplice
Kontaktovat uživatele:

Train_Light_map _with_Diffuse. Fx

Příspěvek od Josef72 »

Tento shader je určen především pro modely budov. Využívají dvou mapovacích kanálů, kdy v jednom je hlavní difusní textura a ve druhém tzv. světelná mapa. Světelná mapa (lightmaps) má za cíl dodat modelu stín v místech, kam nedopadá přímě světlo. Nejedná se tedy o klasický stín, který generuje hra. Rozdíl je jasně patrný na těchto dvou snímcích. Na prvním vidíme objekt s použitím klasického "Texdiff" shaderu, na druhém je stejný objekt, ale s použitím našeho shaderu (Train_Light_map _with_Diffuse. Fx)

Obrázek

Obrázek

Na těchto screenech je jasně vidět, že druhá textura neovlivňuje jen diffúzní stín v místech pod střechou, u země či u dveří, ale také celkové světlo dopadající ve hře na objekt. V návodu se pokusím vysvětlit, jak tuto světelnou mapu vytvořit.

1) Takto vypadá cvičný objekt při použití jednoduchého shaderu
Obrázek

2) Nyní si načteme náš shader, který obsahuje dva sloty. Do prvního načteme hlavní texturu a namapujeme na objekt. Postup je stejný jako u jednoduchého shaderu ( např. Texdiff). Do druhého později načteme světelnou mapu ( příště jen LM ). Tu nyní vytvoříme a zároveń namapujeme na objekt.
Obrázek

3) Spojíme všechny objekty, u kterých chceme použít tento shader a to pomocí příkazu „Attach“ . Ten najdeme v záložce "Edit Geometry"
Obrázek

Zde bych se zastavil. Důvodem, proč jsem spojil všechny objekty ve scéně je fakt, že se jedná o jednoduchý objekt, který bude používat pouze jeden materiál s tímto shaderem, takže budu vytvářet jen jednu texturu pro druhý slot. Může ale nastat situace, kdy je objekt podstatně složitější.

U takových objektů je nezbytné, abyste si vše předem jasně naplánovali. Pakliže stavíte nádraží s osmi budovami, řekněme A,B,C,D,E,F,G,H, tak vytvářejte základní textury chronologicky. Textura_1 pro objekty „A“ a „B“, Textura_2 pro objekt „C“ apod. Pakliže bude "Textura_1" uspořádaná tak, že na ní bude něco z budovy A, ale taky B,C,D a H, tak při snaze o vytvoření textury pro druhý slot tohoto materiálu skončíte, nebo se nejdřív zblázníte a pak skončíte. Více plánování s vytvořením textur, LODů se tady rozhodně vyplatí.

4) Vytvoříme nový materiál, nikoliv však Kuju materiál, ale běžný „Standart“. Odemkněte „Ambient“ a „Diffuse“ a změňte barvy podle screenu. První a třetí nechávám stejné, prostřední (Diffuse) změním na hodnotu 220. Můžete ale experimentovat, osobně to jen opakuji podle jiného návodu. Tento materiál aplikujte na objekt.
Obrázek

Obrázek

5) Nyní vytvoříme mapování pro LM. Mezi modifikátory vybereme „Unwrap UWV“ a v poli pro „Map Chanal „ zadáme číslo 2!!!!!!! V nabídce modifikátoru vybereme mapování podle ploch (Face), stiskneme Ctrl+A, čímž se nám automaticky vyberou všechny plochy.
Obrázek

Obrázek

V poli "Parameters" klikneme na "Edit...". Otevře se nám okno "Edit UVWs". Zde v záložce "Mapping" vybereme "Flatten mapping". Změníme pouze pole "Spacing" na 0,002. Nyní máme všechny klastry rovnoměrně rozložené. Žádný se nesmí překrývat.
Obrázek

Obrázek

6) Vložíme do scény světlo. Vše je na znázorněno na screenu. U tohoto světla je jedno, v jakém místě scény ho umístíte.
Obrázek

7) Scénu máme prakticky připravenou. Kdo chce, může ještě přidat jednoduchý objekt ( plane ), který při renderování simuluje zem. Přejdeme k renderování scény. Záložka Rendering/Render To Texture...
Obrázek

Otevře se nám okno "Render To Texture". Nejprve klikneme na tlačítko "Setup".
Obrázek

Vpravo nahoře vybereme "Advanced Lighting" a potom "Light Tracer" ( přesně podle screenu).
Obrázek

Uděláme zkušební render. Vpravo dole klikneme na tlačítko "Render". Mělo by se vám objevit něco podobného.
Obrázek

Takto bude vypadat rozložení stínů a světel na našem objektu. Teď zavřeme toto okno a přejdeme k "Render To Texture". Opět přesně podle screenu. Vybereme objekt ve scéně, v políčku "Chanell" dáme "2". Klikneme na "Add..." a vybereme "CompleteMap".
Obrázek

V poli "Name" si můžete změnit název textury, File Name and Type určuje místo, kam si uložíte LM. Element Background určuje barvu pozadí u textury Lm. Nenechávejte černou, ale dejte světle šedou barvu. Nakonec zadejte velikost textury. Co jsem viděl, tak byla používána velikost maximálně 256x256 px, u RW3 možná i 512 x 512 px, ale nejsem si tím jistý.
Obrázek

Nakonec klikneme na tlačítko "Render" a vytvoříme tím naší texturu (LM). V náhledu vypadá takto. Pozadí zůstává černé, ale v samotné textuře je pozadí takové, jaké jsme si nastavili.
Obrázek

V posledním kroku si tuto texturu uložím do složky "Texture" ve formátu "ACE" a načtu do druhého slotu materiálu. To je vše a nyní můžeme objekt exportovat do hry.
Obrázek

To je vše. Na první pohled se to zdá asi složité, ale je to jen otázka praxe. Je to opakování stále toho samého.
smekac
Příspěvky: 201
Registrován: pon 11. dub 2011 14:11:24
Kontaktovat uživatele:

Re: Train_Light_map _with_Diffuse. Fx

Příspěvek od smekac »

mno já už se to konečně naučil :D ... ale i tak díky. Když se něco nepovede mrknu sem. Pomohl si snad nejen mě :oops:
smekac
Příspěvky: 201
Registrován: pon 11. dub 2011 14:11:24
Kontaktovat uživatele:

Re: Train_Light_map _with_Diffuse. Fx

Příspěvek od smekac »

Jen mám malý problém. Pro renderu mi stíny sedí ale jakmile texturu načtu do 2. slotu textury, a vyexportuju tak mi stíny nesedí jak mají ... dělá to i když mám renderovaný stín 256, 512 tak i když je stejný jako velikost textury...
Josef72
Moderátor a modelář
Příspěvky: 806
Registrován: sob 28. bře 2009 13:37:36
Bydliště: Proboštov / Teplice
Kontaktovat uživatele:

Re: Train_Light_map _with_Diffuse. Fx

Příspěvek od Josef72 »

Ukaž screen. Mapování máš ve druhém kanálu ? A ještě jedna věc. Modifikátor „Unwrap UWV“ musí zůstat po celou dobu.
smekac
Příspěvky: 201
Registrován: pon 11. dub 2011 14:11:24
Kontaktovat uživatele:

Re: Train_Light_map _with_Diffuse. Fx

Příspěvek od smekac »

Obrázek
adult image hosting
Mapování jako takové mám chanel-1 a stíny co jsem renderoval mám chanel-2 jestli to myslíš takto
Josef72
Moderátor a modelář
Příspěvky: 806
Registrován: sob 28. bře 2009 13:37:36
Bydliště: Proboštov / Teplice
Kontaktovat uživatele:

Re: Train_Light_map _with_Diffuse. Fx

Příspěvek od Josef72 »

A tady si taky dal druhý mapovací kanál ?
http://imageshack.us/photo/my-images/835/89145086.jpg/

Jestli ano, tak mě ještě napadá to, co jsem psal prve. Musíš nechat modifikátor „Unwrap UWV“ v zásobníku až dokonce. Teprve když je render textury dokončen, tak vše sbalim do "EditPoly". Jestli to uděláš dříve, tak si program vytvoří pro render textury vlastní mapování, které nebude odpovídat tomu, co jsi před tím udělal ty.
smekac
Příspěvky: 201
Registrován: pon 11. dub 2011 14:11:24
Kontaktovat uživatele:

Re: Train_Light_map _with_Diffuse. Fx

Příspěvek od smekac »

Pokud dám chanel 2 tak se mi vyrenderuje hotová textura se stíny.
Josef72
Moderátor a modelář
Příspěvky: 806
Registrován: sob 28. bře 2009 13:37:36
Bydliště: Proboštov / Teplice
Kontaktovat uživatele:

Re: Train_Light_map _with_Diffuse. Fx

Příspěvek od Josef72 »

smekac píše:Pokud dám chanel 2 tak se mi vyrenderuje hotová textura se stíny.
Nerozumím. Nějaká textura se ti bude renderovat vždycky a je jedno, jestli máš zadaný druhý, nebo třetí mapovací kanál. Musíš mít zadán druhý mapovací kanál a v zásobníku mít aktivní modifikátor UVW. Máš tohle všechno nebo ne ? Jestli ne, tak si program vytvoří vlastní mapování a je jedno, že si udělal svoje.

A další věc. Když se ti vyrendruje hotová textura, tak ji porovnej se svým mapováním a musíš vidět jasný rozdíl. Tím se přiblížíš k místu, kde děláš chybu.
smekac
Příspěvky: 201
Registrován: pon 11. dub 2011 14:11:24
Kontaktovat uživatele:

Re: Train_Light_map _with_Diffuse. Fx

Příspěvek od smekac »

K příspěvku výše. LM se obyčejně renderuje samostatně-bílé pozadí+šedá jako stín, v uvedeném případě se stín přímo vykreslí do puvodní textury.

EDIT:Večer se na to ještě mrknu ...
Uživatelský avatar
Roman
Příspěvky: 2207
Registrován: stř 01. črc 2009 12:19:03
Kontaktovat uživatele:

Re: Train_Light_map _with_Diffuse. Fx

Příspěvek od Roman »

Tak Jsem to zkusil dle návodu na jeden velmi starý objekt pro MSTS a výsledek je vidět... Jen to chce více si pohrát s nasvícením scény před renderováním textury. Ale na zkoušku to stačí.

Obrázek

Obrázek

Dík za návod.
smekac
Příspěvky: 201
Registrován: pon 11. dub 2011 14:11:24
Kontaktovat uživatele:

Re: Train_Light_map _with_Diffuse. Fx

Příspěvek od smekac »

Jestli jsem to správně pochopil tak výstup z renderu je toto:
Obrázek
gif hosting
Když to pak vyexportuju do ACE a dám do slotu 2 tak mi to dělá to jak jsem ukazoval na screenu ↑
Josef72
Moderátor a modelář
Příspěvky: 806
Registrován: sob 28. bře 2009 13:37:36
Bydliště: Proboštov / Teplice
Kontaktovat uživatele:

Re: Train_Light_map _with_Diffuse. Fx

Příspěvek od Josef72 »

A jak vypadá mapování ? Myslím toto :
Obrázek

Odpovídá to textuře, kterou teď ukazuješ ? Nebo je výsledná textura rozložena jinak ?
smekac
Příspěvky: 201
Registrován: pon 11. dub 2011 14:11:24
Kontaktovat uživatele:

Re: Train_Light_map _with_Diffuse. Fx

Příspěvek od smekac »

V mapovacím okně jsem vše označil pak dal mapping - flaten maping změnil z 0.02 na 0.002 potvrdil, vzniklo toto:
Obrázek
myslím že to je OK ne ?
Josef72
Moderátor a modelář
Příspěvky: 806
Registrován: sob 28. bře 2009 13:37:36
Bydliště: Proboštov / Teplice
Kontaktovat uživatele:

Re: Train_Light_map _with_Diffuse. Fx

Příspěvek od Josef72 »

No tak je jasně vidět, že výsledná textura neodpovídá mapování. Ještě jednou se optám. Modifikátr UVW necháváš po mapování aktivní v zásobníku až do konce ?

Obrázek
smekac
Příspěvky: 201
Registrován: pon 11. dub 2011 14:11:24
Kontaktovat uživatele:

Re: Train_Light_map _with_Diffuse. Fx

Příspěvek od smekac »

Ano, modifikátor mě zustává, ale jak se tak dívám, vadí když jsem již dříve modifikátor použil a dal collpase all ?
Josef72
Moderátor a modelář
Příspěvky: 806
Registrován: sob 28. bře 2009 13:37:36
Bydliště: Proboštov / Teplice
Kontaktovat uživatele:

Re: Train_Light_map _with_Diffuse. Fx

Příspěvek od Josef72 »

Vadí. Mně se to co popisuješ stalo taky.
smekac
Příspěvky: 201
Registrován: pon 11. dub 2011 14:11:24
Kontaktovat uživatele:

Re: Train_Light_map _with_Diffuse. Fx

Příspěvek od smekac »

Mno tak to je docela uplně v :arrow: ..........
Josef72
Moderátor a modelář
Příspěvky: 806
Registrován: sob 28. bře 2009 13:37:36
Bydliště: Proboštov / Teplice
Kontaktovat uživatele:

Re: Train_Light_map _with_Diffuse. Fx

Příspěvek od Josef72 »

?
To musí jít, na 100%. Děláš něco špatně. Když tak mi to hoď do SZ. Ale to jde opravit, stoprocentně.
juros
Příspěvky: 52
Registrován: sob 04. črc 2009 11:15:29
Kontaktovat uživatele:

Re: Train_Light_map _with_Diffuse. Fx

Příspěvek od juros »

Nevie niekto pomoct ak by som chcel vytienovat napr. podvozok ktory ma okolo 2500 poly = polovica podvozku (jedna strana). Mapoval som to cez planar map. Je postup uplne taky isty? Uz som nieco skusal ale bud som pravil chybu v mapovani alebo niekde inde lebo mi pri exporte hry ukazuje podivne veci na tej texture ktore nie su vidiet ani na tej tienovej mape.

Obrázek
Josef72
Moderátor a modelář
Příspěvky: 806
Registrován: sob 28. bře 2009 13:37:36
Bydliště: Proboštov / Teplice
Kontaktovat uživatele:

Re: Train_Light_map _with_Diffuse. Fx

Příspěvek od Josef72 »

S tolika polygony se tento podvozek udělat nedá ( s tímto shaderem myslím ). Pro začátek bych zkusil dát jednoduchý shader "Texdiff" a po exportu uvidíš, zda je problém v shaderu nebo v mapování.
Odpovědět