Anizotropní filtrování

Srovnání Anizotropického a trilineárního filtrování.

V počítačové 3D grafice je anizotropní filtrování metodou pro zlepšení kvality textur s kosými zornými úhly a s ohledem na úhel pohledu, kde projekce textury působí nekolmým dojmem.

Stejně jako bilineární a trilineární filtrování, i anizotropní filtrování eliminuje tzv. aliasing efekty, ale je oproti nim vylepšen díky redukci rozostření a zachování vysokého detailu i v extrémních zorných úhlech.

Anizotropická komprese je relativně intenzívní a používá se jako standardní funkce současných grafických karet 90. let 20. století. Anizotropní filtrování je nyní běžné v moderních grafických zařízeních včetně video softwaru a je uživatelem aktivováno skrze nastavení grafické programy, ovladače, ale i ve videohrách přes programové rozhraní.

Vylepšení v isotropickém MIP mapování

Příklad Ripmapového ukládání obrazů: původní obraz vlevo nahoře je doplněn o filtrované, lineárně transformované kopie se zredukovanou velikostí.

Předpokládá se, že čtenář je obeznámen s MIP mappingem.

Při bližším průzkumu anizotropního algoritmu a RIP mappingu (rozšíření MIP mappingu), můžeme pochopit jak anizotropní filtrování získává takovou kvalitu texturového mappingu. Pokud potřebujeme texturu horizontální plochy, která je v kosém úhlu ke kameře, tradiční MIP mappingové zmenšení by nám neposkytlo dostatečné horizontální rozlišení kvůli redukci obrazové frekvence na vertikální ose. To se děje, protože při MIP mappingu je každá MIP úroveň izotropická, tudíž 256×256 textura je zmenšena na 128×128, poté na 64×64 atd., takže se rozlišení půlí na každé ose souběžně a obraz má stejnou frekvenci na všech osách. Takhle se při snaze vyhnout se aliasingu na ose s vysokou frekvencí stane, že ostatním osám bude rovněž snížena vzorkovací frekvence a tudíž budou potenciálně rozostřené.

S RIP mappingovým anizotropním filtrováním lze obrazům snížit vzorkovací frekvenci nejen na 128×128, ale lze ji změnit i na 256×128, 32×128 apod. Tyto obrazy s anizotropně sníženou vzorkovací frekvencí mohou být sondovány v případě, že frekvence texturně zmapovaného obrazu je jiná pro každou texturní osu a proto se jedna osa nemusí rozmazávat kvůli frekvenci jiné osy a k aliasingu přesto nedochází.

Laicky řečeno, anizotropní filtrování zachovává ostrost textury, která se běžně ztrácí během MIP mappingu textur při snaze vyhnout se aliasingu. Anizotropní filtrování tak může udržet vysokou kvalitu textury ve všech zorných úhlech a zároveň poskytuje rychlé anti-aliasingové filtrování textur.

Realizace

Anizotropické filtrování sonduje texturu průběžně pixel po pixelu.

Každá anizotropická filtrovací sonda je často sama filtrovaným Mipmapovým vzorkem, který přináší více vzorkování do procesu. Šestnáct trilineárních anizotropních vzorků vyžaduje 128 vzorků z uložené textury, protože trilineární Mipmapové filtrování vyžaduje 4 vzorky krát 2 MIP úrovně a anizotropické vzorkování poté vezme šestnáct filtrovaných trilineárních sond.

Avšak takhle složité filtrování není vyžadováno neustále. Jsou běžně dostupné metody, které snižují množství práce, kterou musí hardware při renderování vykonat.

Výkon a optimalizace

Požadovaný počet vzorků může způsobit, že anizotropické filtrování extrémně zatíží šířku kmitočtového pásma. Mnohonásobné textury jsou běžné, každý texturový vzorek může mít 4 bity nebo víc, takže každý anizotropní pixel vyžaduje 512 bitů z texturové paměti, ačkoli běžně používaná komprese textur toto množství snižuje.

Pokud monitor dokáže obsáhnout okolo dvou milionů pixelů a snímkovou frekvenci 30-60 Hz (nebo víc), šířka kmitočtového pásma texturní paměti rychle může vyšplhat velmi vysoko. Rozpětí až několik stovek gigabytů za sekundu je běžné, pokud je anizotropní filtrování zapnuté.

Reference

V tomto článku byl použit překlad textu z článku Anisotropic filtering na anglické Wikipedii.

Externí odkazy

Média použitá na této stránce

MipMap Example STS101 Anisotropic.png
Autor: , Licence: CC BY-SA 3.0
This image is an example of a ripmap.