Wat is anisotrope filtering?

Anisotrope filtering is een relatief standaardoptie in videogames. Er zijn echter maar heel weinig games die de moeite nemen om uit te leggen wat het doet, en degenen die dat wel doen, zouden nog steeds baat hebben bij een visueel voorbeeld om het gemakkelijker te begrijpen te maken.

Anisotrope filtering is een textuurfiltertechniek die de kwaliteit van texturen die onder een hoek worden gezien merkbaar kan verbeteren. Dit is over het algemeen het meest merkbaar op vlakke wand- of vloertexturen die zich in de verte uitstrekken. Zonder textuurfiltering wordt een textuur die onder een hoek wordt gezien merkbaar wazig en verliest veel detail naarmate de hoek steiler wordt.

Mipmaps

Een basisoplossing voor deze vervaging zijn texture mipmaps. Mipmapping omvat het vooraf berekenen van een reeks verkleinde versies van texturen. Als de originele textuur bijvoorbeeld 256 × 256 pixels is, zou de mipmap-versie 128 × 128, 64 × 64, 32 × 32 pixelversies hebben, enzovoort. Dit ontwerp vergroot de grootte van elk textuurbestand met 33%.

Tip: De "Mip" in Mipmap komt van de initialen voor de uitdrukking "veel in een kleine ruimte" in het Latijn "Multum in parvo".

De verkleinde versies in mipmapped-texturen worden gebruikt wanneer de textuur met verminderde resolutie efficiënter kan worden weergegeven dan de volledige resolutie. Dit probleem met deze benadering doet zich voor omdat het beeld met verminderde resolutie per definitie kleiner is dan het origineel. Om een ​​patroon te laten lijken alsof het overeenkomt, moet de textuur worden uitgerekt om overeen te komen met de breedte van de originele textuur. Dit uitrekken plotseling en merkbaar verhoogt de wazigheid van de textuur, waarbij het effect erger wordt naarmate texturen met een lagere resolutie worden ingewisseld. Hoe duidelijk dit vervagingseffect ook is, het is nog steeds minder zichtbaar en minder processorintensief dan wanneer je de volledige textuur moet gebruiken en in realtime moet verkleinen.

Anisotrope filtering

De oplossing voor dit probleem is anisotrope filtering. In plaats van alleen steeds kleinere texturen te gebruiken die de breedte en hoogte van de vorige textuur halveren, worden er ook een halve breedte volledige hoogte en halfhoge volledige breedte textuur gecreëerd. Deze halfhoge texturen over de volledige breedte bieden de noodzakelijk verminderde kwaliteit, maar dat hoeft niet uitgerekt omdat ze al dezelfde breedte hebben als de originele textuur, waardoor de significante vervagingseffect.

Tip: Het woord "anisotroop" heeft een samengestelde oorsprong. "An" betekent niet, "iso" betekent hetzelfde, en "tropisch" komt van tropisme, wat betekent gerelateerd aan richting. Deze naam past omdat anisotrope filtering niet in alle richtingen op dezelfde manier filtert.

In games wordt de anisotrope filteroptie vaak gepresenteerd met een vermenigvuldiger, meestal 2x, 4x, 8x en 16x. Deze vertegenwoordigen het aantal verkleiningen die beschikbaar zijn voor gebruik. Meestal is het verschil tussen 8x en 16x bijna onmogelijk te onderscheiden, behalve in vergelijkingen naast elkaar. Dit komt door het feit dat de enige aangetaste texturen ver, klein en daarom moeilijk te zien zijn. De prestatie-impact van anisotrope filtering is relatief minimaal.