Obsah
Teselace (Tessellation)
Teselace je proces rozkládání jednoduchých geometrických tvarů (polygonů, obvykle trojúhelníků) na velké množství menších a detailnějších částí. Tento proces probíhá v reálném čase přímo na grafické kartě.
Jak teselace funguje?
Místo toho, aby grafik musel ručně modelovat miliony drobných detailů (např. nerovnosti na kamenné zdi), vytvoří pouze jednoduchý, nízkopolygonový model (low-poly) a k němu tzv. displacement mapu (mapu výšek).
1. Vstup: Jednoduchý model s malým počtem trojúhelníků. 2. Tessellation Engine: Tato jednotka uvnitř GPU (součást Polymorph Engine v GPC) rozdělí každý trojúhelník na desítky či stovky menších. 3. Deformace: Nově vzniklé body se posunou nahoru nebo dolů podle informací z displacement mapy. 4. Výsledek: Vysoce detailní objekt, který má skutečnou hloubku a plastický povrch.
Hlavní výhody teselace
* Úspora paměti (VRAM): Grafická karta nemusí ukládat obrovské soubory s miliony trojúhelníků. Stačí jí jednoduchý model a instrukce, jak ho „rozmnožit“. * Dynamický detail (LOD): GPU může teselaci upravovat podle vzdálenosti. Objekty blízko kamery jsou vysoce detailní (vysoká teselace), zatímco vzdálené objekty zůstávají jednoduché. * Realismus: Na rozdíl od starších technik (např. Bump Mapping), teselace mění skutečnou siluetu objektu. Pokud se podíváte na teselovanou zeď z profilu, uvidíte reálné výstupky, nikoliv jen plochou texturu.
Teselace v hardware
V architektuře moderních GPU (zejména NVIDIA) je teselace úzce spjata s jednotkami Polymorph Engine, které se nacházejí uvnitř každého GPC.
Před příchodem hardwarové teselace (DirectX 11) bylo vykreslování extrémně detailních povrchů pro běžné počítače prakticky nemožné v reálném čase.
Příklad z praxe
Představte si cihlovou zeď:
- Bez teselace: Zeď je plochý obdélník s obrázkem cihel. I když vypadá dobře, z boku je dokonale rovná.
- S teselací: GPU „rozseká“ obdélník na tisíce kousků a vytlačí jednotlivé cihly dopředu a spáry dozadu. Zeď vypadá plasticky a hází reálné stíny.
Klíčová slova: Tessellation, Geometry, GPU, DirectX 11, Displacement Mapping
