Truform/HDM a Super Sample Filtering
Kapitoly článků
Truform (ATI) / Hardware Displacement Mapping (Matrox)
Tyto dvě funkce jsem dal dohromady z jednoho prostého důvodu. Matrox totiž
na svých stránkách uvádí, že Hardware Displacement Mapping (HDM -
opět odkaz na článek) je velmi vylepšený ekvivalent Truform u Ati. U obou
funkcí se totiž jedná o formování objektu (konkrétněji jejich trojúhelníků),
kdy se do jednoduchého objektu přidávají trojúhelníky, které se pak můžou různě
formovat - obrázek TRUFORM...
... ve výsledku jsou pak objekty lépe zaoblené a propracované. Matrox šel ve
formování objektu ještě dále a přidal vzdálenost od plochy. Tímto způsobem
již není odkázán na původní tvar objektu, ale může jej vizuálně úplně změnit.
Jen pro upřesnění - první obrázek znázorňuje princip vytváření HDM a druhý
výsledek použití této funkce, kdy na stejný objekt je aplikována jiná HDM
textura.
Protože takto přidané trojúhelníky zvyšují náročnost scény, snižuje se i
výkon. ATI tuto nevýhodu "řeší" silou, kdežto Matrox přidal funkci Depth-Adaptive Tessellation, kdy přidává počet trojúhelníku podle vzdálenosti od pozorovatele - čím blíže, tím více trojúhelníku, se zvětšující vzdálenosti se množství trojúhelníku rapidně snižuje (u ATI je úroveň detailu vždy konstantní, resp. program musí být napsán tak, aby byl schopen měnit počet trojúhelníku, kdežto Matrox to dělá automaticky). Tímto způsobem se dá i velice náročná scéna (např. členitá krajina) vykreslit bez obrovského úbytku výkonu. Všechno vypadá dobře, ale bohužel vše má i své stinné stránky - funkci modelování textur lze použít pouze v případě, že ji aplikace podporuje a tady je kámen úrazu, protože kromě několika dem nevím o žádné aplikaci (např. hře), která by tuto funkci podporovala. Vysvětlení je jednoduché: existuje jen jediná grafická karta s kvalitní implementací. Ano, je to Parhelia. ATI a nVidia používají jednoduchý "hack" s využitím vertex shaders, aby si tento pojem mohli zapsat do tabulky "podporuje". Ten je ovšem prakticky nepoužitelný, protože to, co potřebujeme, je dynamické generování trojúhelníků podle úrovně detailu... a poněkud více hodnot, než je registr pro konstanty. Další důvod, proč zatím není HDM využívaný, je ten, že tato funkce je podporována až u DirectX 9, který se začne používat kdovíkdy, a také ten, že je tato funkce víceméně nekompatibilní např. s volumetrickými stíny, které používá Doom3. Takže dokud vývojáři her nebudou hry upravovat (např. formou patchů, jako tomu bylo u EMBM), tak se této funkce v blízké době nedočkáme.
Na závěr aspoň detail obrázku z jednoho dema to, co vidíte, je textura s aplikaci HDM (a využitím Quad texturing, kdy na plochu jsou v jednom čase nanášené až čtyři textury - normal, decal, specular a caustic).
64 Super Sample Texture Filtering
Parhelia je schopna spočítat během tiku až 64 samplů z textury. Číslo 64
odpovídá tomu, že Parhelia má 4 pipelines, 4 texturovací jednotky na jednu
pipeline a jedna TMU je schopna bilineárniho filtrování - 4×4×4 = 64.
Vzhledem k tomu, že na objekt jsou aplikovány dvě textury (základní textura
+ lightmapa), nazývá se toto Duální texturování.
- Duální-texturování pixelů se zapnutým trilinearním filtrováním je výkonově
stejné, jako dualní-texturování pixelů se zapnutým bilinearním filtrováním. - Duální-texturování pixelů se zapnutým 16-sample anisotropním filtrováním je výkonově stejné, jako dualní-texturování pixelů se zapnutým trilinearním filtrováním
Při normálním duálním texturování a bilineárním filtrování je potřeba jen 2
TMU, takže další dvě zahálejí, kdežto při duálním texturování s trilineárním
filtrováním je potřeba všechny 4 TMU. Proto nemá bilineární či trilineární
filtrování vliv na výkon. O tomto se vede dost diskuse, neboť panuje přesvědčení (nejspíše důsledek prvních testů Parhelie na prvních ovladačích), že i přes výše uvedené skutečnosti, klesne u trilineárního texturování výkon. Proto jsem to odzkoušel na několika hrách a vždy byl výsledek stejný. Zkoušel jsem i použití FRAPS (měření FPS v průběhu hry) a opět výsledek stejný. Takže dle mého nejlepšího svědomí mohu říct, že v tomto "reklamní" materiály Matroxu nelžou.
Diskuse ke článku Matrox Parhelia 512