Anti-aliasing en Anisotropische filtering uit de doeken

11 reacties
Inhoudsopgave
  1. 1. Inleiding
  2. 2. Full scene anti-aliasing
  3. 3. Anisotropische filtering
  4. 4. ATI en nVidia
  5. 5. AF: 3DMark06
  6. 6. AF: Prey
  7. 7. AF: Prey (2)
  8. 8. AA: 3DMark06
  9. 9. AA: Prey
  10. 10. AA: Splinter Cell
  11. 11. Video
  12. 12. Conclusie
  13. 11 reacties

Full scene anti-aliasing

Een afbeelding op een computerbeeldscherm wordt zoals bekend opgebouwd uit pixels, een reeks kleine vierkantjes die boven en onder elkaar gepositioneerd zijn en elk een andere kleur kunnen hebben. Hoe hoog de resolutie van moderne monitoren ook mag zijn, in vrijwel alle gevallen is het met het blote oog prima mogelijk om individuele pixels van elkaar te onderscheiden. En dat heeft in sommige gevallen een nadelig bijeffect.

Het mooiste voorbeeld is wat er gebeurtals je op een computerscherm een schuine lijn tekent. Juist omdat die lijn uit kleine vierkantjes moet worden opgebouwd, kan hij nooit écht mooi glad zijn, maar krijg je ongewild een kartel effect, dat in jargon ook wel 'jaggies' wordt genoemd. De officiële term is aliasing en technologieën om het effect tegen te gaan noem je dan ook anti-aliasing.

In onderstaande afbeelding die je een zwarte lijn op een witte achtergrond en daaronder een tweede versie van de lijn waarbij anti-aliasing is toegepast. Niemand zal ontkennen dat die onderste lijn er een stuk gladder uitziet en in de uitvergroting zie je hoe anti-aliasing dat heeft bewerkstelligd: de pixels zijn niet helemaal puur óf helemaal zwart óf helemaal wit, maar aan de randen wordt de kleur van de lijn gemend met die van de achtergrond. Als een bepaalde pixel half bij de lijn en half bij de achtergrond zou horen, wordt 'ie 50% grijs. Zou het oppervlakte van de pixel bij een oneindige resolutie driekwart lijn en één kwart achtergrond bevatten, wordt 'ie 75% grijs. De anti-aliasing technologie zorgt ervoor dat - zeker wanneer je van een afstandje kijkt - het helemaal niet meer opvalt dat een scherm uit pixels wordt opgebouwd.

lineaa

Aliasing effecten zijn natuurlijk het ergst zichtbaar wanneer er een groot kleurverschil optreedt; een zwarte lijn op een witte achtergrond is natuurlijk het meest extreme voorbeeld, een donkergroene lijn op een iets minder donkergroene achtergrond levert natuurlijk minder zichtbare problemen op.

Binnen 3D-games lopen we tegen exact dezelfde problemen aan. Wanneer een bepaald 3D-object - of het nu een boom, een stoel of één van de spelers binnen Quake IV is - voor een bepaalde achtergrond staat en er er bestaat een duidelijk kleurverschil, dan zie je heel duidelijk het karteleffect optreden. Zonder anti-alising behoort een pixel immers óf bij het object aan de voorgrond óf bij de achtergrond, er is geen gulden middenweg. Dat karteleffect is al erg lelijk te noemen, maar wordt ook nog eens erg storend wanneer een object beweegt; de jaggies bewegen dan immers mee.

aaaf-sc-1-ati-0af aaaf-sc-1-ati-6af
Een telefoonpaal in Splinter Cell: Chaos Theory, zonder en met anti-aliasing

De kartel binnen een 3D-game kunnen we dus tegengaan met behulp van anti-aliasing. Wat er gebeurt is in principe vrij eenvoudig: het beeld wordt in principe in een hogere resolutie berekend en daarna teruggeschaald naar de gewenste resolutie. Bij de eerste generatie FSAA algoritmes binnen videokaarten gebeurde dat exact op die manier: wanneer je een spel speelde op een resolutie van 800x600 pixel werd het beeld eerst bijvoorbeeld in 1600x1200 resolutie gerenderd en daarna teruggeschaald. In dit voorbeeld zou je voor iedere pixel in eerste instantie er vier hebben berekend; de kleur van de uiteindelijke pixel wordt dan het gemiddelde van de vier eerder berekende pixels. Deze vorm van FSAA noemen we supersampling.

Tegenwoordig is multisampling meer in de mode, aangezien het tot betere resultaten leidt. Hierbij wordt het beeld niet direct in een hogere resolutie berekend en daarna teruggeschaald, maar wordt een 3D-scene een aantal keren (2 keer, 4 keer, etc.) berekent, maar dan met een miniscule verschuiving. Voor iedere pixel worden op die manier dus twee of meer kleurwaardes berekend. Deze worden uiteindelijk weer gemiddeld, waardoor de uiteindelijke kleur van alle pixels wordt bepaald.

Anti-aliasing zorgt er meteen voor dat een ander effect wordt tegen gegaan. Wanneer een object binnen een 3D-game zó dun is dat het in feit minder dan een pixel in breedte beslaat, kan het het zijn dat het object op sommige plekken juist wél en of andere plekken juist niet zichtbaar is. De flinterdunne antennes in scène 4 van 3DMark06 zijn daar misschien nog wel het beste voorbeeld van. Anti-aliasing zorgt ook hier voor een oplossing.

aaaf-3dm06-2-ati-0aa
Hele dunne objecten kunnen dankzij aliasing op sommige plekken juist wel of juist niet zichbaar zijn.

Hoe meer samples je neemt voor iedere pixel, hoe mooier het resultaat, maar natuurlijk ook hoe rekenintensiever. Wanneer je FSAA inschakelt kun je meestal zelf aangeven hoeveel extra samples je wil berekenen. Bij 2x FSAA wordt voor iedere pixel twee samples genomen, bij 4x FSAA voor iedere pixel vier samples, en zo verder. Moderne videokaarten kunnen tot 6x FSAA of zelfs nog hoger werken. De resultaten worden uiteraard steeds beter.

Advertentie
0

Hardware Info maakt gebruik van cookies

Hardware Info plaatst functionele en analytische cookies voor het functioneren van de website en het verbeteren van de website-ervaring. Deze cookies zijn noodzakelijk. Om op Hardware Info relevantere advertenties te tonen en om ingesloten content van derden te tonen (bijvoorbeeld video's), vragen we je toestemming. Via ingesloten content kunnen derde partijen diensten leveren en verbeteren, bezoekersstatistieken bijhouden, gepersonaliseerde content tonen, gerichte advertenties tonen en gebruikersprofielen opbouwen. Hiervoor worden apparaatgegevens, IP-adres, geolocatie en surfgedrag vastgelegd.

Meer informatie vind je in ons cookiebeleid.

Toestemming beheren

Hieronder kun je per doeleinde of partij toestemming geven of intrekken. Meer informatie vind je in ons cookiebeleid.

Functioneel en analytisch

Deze cookies zijn noodzakelijk voor het functioneren van de website en het verbeteren van de website-ervaring. Klik op het informatie-icoon voor meer informatie.

janee

    Relevantere advertenties

    Dit beperkt het aantal keer dat dezelfde advertentie getoond wordt (frequency capping) en maakt het mogelijk om binnen Hardware Info contextuele advertenties te tonen op basis van pagina's die je hebt bezocht.

    janee

    Hardware Info genereert een willekeurige unieke code als identifier. Deze data wordt niet gedeeld met adverteerders of andere derde partijen en je kunt niet buiten Hardware Info gevolgd worden. Deze data wordt maximaal 2 weken bewaard. Je kunt deze toestemming te allen tijde intrekken.

    Ingesloten content van derden

    Deze cookies kunnen door derde partijen geplaatst worden via ingesloten content. Klik op het informatie-icoon voor meer informatie over de verwerkingsdoeleinden.

    janee