Pro počítání normal mapy z highpoly modelu máme mnoho možností. Většina 3D programů jejich generování nějakým způsobem podporuje. Já tu podrobněji popíšu postup v programu 3ds max a specializovaném xNormal. Budeme tedy potřebovat scénu s lowpoly a highpoly objekty, pro lowpoly verzi budeme potřebovat již nastavené UV.
3ds max
V 3ds maxu k tomu slouží dialog render to texture, nacházející se v menu rendering (klávesová zkratka 0). Ve scéně, kde máme na stejné pozici přibližně stejně velké lowpoly i highpoly modely, tedy vybereme lowpoly model a v dialogu klikneme na pick, kde vybereme highpoly objekt. Mezi modifikátory lowpoly objektu nám přibyde jeden nový - Projection, s jeho pomocí vytvoříme tzv. cage (viz. předchozí díl o NM). Pokud po vybrání modifikátoru vypadá cage rozházeně, klikněte na tlačítko reset v záložce cage. Pro snadnější úpravu můžete zaškrtnout shaded. Změnou hodnoty amount u push pohybujeme s cage po směru normál objektu. Cílem je vytvořit cage tak, aby byla nad highpoly objektem, ale přesto velmi blízko jeho povrchu, můžeme k tomu využít také manuální pohyb vertexy cage, nebo cage exportovat jako editable mesh a upravit.
Po dokončení úprav cage se přesuneme zpět do render to texture, vybereme Add>Normals map, nastavíme požadovanou velikost (pro herní engine o stanách v mocninách dvou) a vybereme soubor pro uložení normal mapy. Pak už jen klikneme na tlačítko render. Textura, která se zobrazí v renderovaném okně není normal mapa, ta se uložila do předem zadaného umístění. Pokud se objevily nějaké problémy, např. minutí paprsku v podobě červených pixelů, upravíme cage a opakujeme render.
xNormal
Takto tedy můžeme vytvořit NM přímo z 3D aplikace, protože je ale 3ds max často kritizovaný za výsledky generování normálových map, ukážu zde ještě postup pro specializovaný program xNormal. Jde o freeware program, stáhnout jej můžete zde. Jeho výhodou je přesnější a rychlejší generování, zvládá také vytvářet tzv. AO mapy a další. Navíc umožňuje programátorovi herního engine vytvořit vlastní renderer, takže program potom vytváří textury dokonale fungující v daném engine.
Nejdříve budeme potřebovat exportovat naše modely z 3D aplikace. Postačí např. formát OBJ, kde nesmíme zapomenout u lowpoly objektu exportovat také normály (smoothing groups) a UV souřadnice. Pokud máte na PC nainstalovaný 3ds max, přibude vám po instalaci xNormal také nový exporter pro xNormal, zde opět u lowpoly objektu zaškrtneme export normál a UV souřadnic.
Program nabízí několik záložek, z nichž využijeme 3: Na první záložce high definition meshes klikneme pravým tlačítkem a vybereme Add meshes, kde vybereme náš exportovaný high-poly objekt. Stejným způsobem na druhé záložce otevřeme lowpoly model. Potom na záložce baking options nastavíme Normal map, velikost generované textury a soubor pro uložení. Stačí už jen kliknout na generate maps. Pokud nespecifikujeme také soubor s cage objektem na druhé záložce, xNormal se pokusí vygenerovat texturu i bez ní, pokud je model předem rozdělen na více částí (viz. další díl), není většinou potřeba cage používat.
To je pro dnešek vše, v dalších dílech popíšu některé rady pro úspěšné generování normal map, zobrazení výsledků ve viewportu nebo třeba generování NM v 2D aplikacích.
Žádné komentáře:
Okomentovat