truform-od-teorie-k-praxi
Hardware Článek TruForm - od teorie k praxi

TruForm - od teorie k praxi

Jahoda Miroslav

Jahoda Miroslav

7. 4. 2003 00:00 25

Seznam kapitol

1. Proč prostě nepřidat trojúhelníky 2. RT-patches - nevyužitý potenciál 3. N-patches - jak to funguje 4. N-patches - pokračování 5. Které karty a hry už umí N-Patches? 6. Závěr

Už jste určitě slyšeli o jakoby zazračné technologii prosazované firmou ATi spolu s Radeony od typu 8500, která má jako mávnutím kouzelného proutku hranaté modely z dnešních her přetvořit v krásně zaoblené s realističtějšími odlesky. Jak je to s TruFormem v současných hrách doopravdy, jak funguje a co vedlo k jeho vzniku se dozvíte z následujícího článku.

Reklama

Jak víme, trojrozměrné modely všech dnešních her jsou tvořeny polygony, přesněji trojúhelníky. V reálném světě nejsou jen hranaté tvary, které se dají snadno vytvořit složením několika trojúhelníků, ale také oválné či kulaté, se kterými je to již těžší. První řešení, které nás asi napadne je, že trojúhelníková síť tvořící takový zaoblený model (například hlavu člověka) by měla být co nejjemnější, tedy obsahovat co nejvíce trojúhelníků. Jenže to je řešení hrubou silou a taková řešení mají zpravidla svá úskalí.

TruForm - od teorie k praxi
i Zdroj: PCTuning.cz

Řekněme, že již dnešní hry obsahují modely složené klidně třeba z 5.000 polygonů a těchto modelů může aktuální scéna obsahovat samozřejmě více současně. Například dnes již postarší klasika Quake III Arena se pyšnil hrubým průměrem okolo 10.000 trojúhelníků na scénu. A určitě jste si všimli, že modely v Quakovi jsou pořád ještě dost hranaté. Takže kdybychom to chtěli řešit zjemněním modelů pomocí zvýšení počtu trojúhelníků, řekněme pětinásobně, dostáváme již průměr nějakých 50.000 polygonů na scénu a to je jen průměr, ve složitějších scénách se může jednat klidně o více než 100.000 polygonů. Pro těch 50.000 bychom odhadem potřebovali paměťovou propustnost okolo 3000 MB/s. Ti z vás, co rádi benchmarkují svoji sestavu a pamatují si čísla si uvědomí, že už taková průměrná scéna pak může narazit na úzká místa při zpracování počítačem. Jedná se především o propustnost sběrnic používaných při komunikaci s grafickou kartou - sběrnice AGP (v dávných časech PCI) a sběrnice systémové RAM. Na následující tabulce uvádím pro lepší představu propustnost těchto částí:

Propustnost (MB/s)
PC133 RAM 1064
PC266 DDR RAM 2128
PC400 DDR RAM 3200
PCI 132
AGP 4x 1056
AGP 8x 2112

První řešení, které je nasnadě je zavést nějaký fungující systém LOD - Level Of Detail (úroveň detailů). Jinými slovy, pro objekty, které jsou blíže použít více detailů (více trojúhelníků) a pro ty na scéně umístěné vzadu zase méně a až s přibližováním k nim pak detaily přidávat. Takovéto systémy se však ukázaly jako příliš komplikované a do her se vlastně nikdy nedostaly.

Přišlo se tedy s jiným řešením, které je již definované v DirectX 8 - High Order Surfaces (HOS), tedy povrchy vyšších řádů.Myšlenka je založena na posílaní stále stejných objemů dat (počtu trojúhelníků) grafické kartě a nechat ji samotnou využít velké výpočetní síly GPU a propustnosti její paměťové sběrnice a tedy složité počty a množství polygonů či povrchů nechat plně na ní. Co pojem povrch vyššího řádu vůbec znamená? Trojúhelník nebo obecně polygon je povrch prvního řádů. Složitější tvary získáváme skládáním těchto polygonů. Ty hladké z nich (představte si například záclony) jsou však vždy určitým způsobem vždy jen aproximovány - složeny ze sítě trojúhelníků a tedy zubaté. Proto se snažíme pracovat s povrchy třetího řádu (tzv. bicubic surfaces), které jsou definovány pomocí polynomů třetího stupně. Výsledkem takovéto definice je pak jasně zapsaný a hlavně nezubatý povrch (B-spline, Bézierův plát). Soubor pixelů a parametrů v této definici se pak nazývá plát (patch).

V DirectX je tedy od verze 8 zahrnuta podpora pro dva typy povrchů vyšších řádů:

  • parametrické povrchy (RT-Patches)
  • N-Patches (známé také jako ATi TruForm)
Předchozí
Další
Reklama
Reklama

Komentáře naleznete na konci poslední kapitoly.

Reklama
Reklama