Anti-aliasing

Uit Wikipedia, de vrije encyclopedie
Ga naar: navigatie, zoeken
Voorbeeld van Anti-Aliasing

Anti-aliasing (soms ook anti-kartelvorming genoemd) is een techniek die wordt toegepast in diverse computer-programma's (met name grafische) om het zogenaamde karteleffect dat voorkomt bij het tekenen van figuren en tekst op het computerscherm te verminderen. Een schuin getekende lijn of ander afgerond figuur op een computerscherm wordt afgebeeld met vierkante pixels. De oplossing is om de pixels rond de rand van een afgerond figuur een kleur te geven die een -naar de positie gewogen- gemiddelde is van de kleur van het figuur en de achtergrondkleur, waardoor het karteleffect minder opvalt.

Vormen van anti-aliasing[bewerken]

De meest doorgaande vormen van anti-aliasing zijn:

  • Supersampling (SSAA)
  • Multisampling (MSAA)
  • Morphologic (MLAA)

Supersampling

Supersampling is het eenvoudigste algoritme en geeft de hoogst mogelijke kwaliteit. Het is echter ook de traagste vorm. Bij supersampling wordt het beeld in een hoge resolutie gerasterd, waarna het verkleind wordt naar de gewenste resolutie. Bijvoorbeeld een afbeelding van 800*600 pixels met 4*SSAA zal gerasterd worden als een afbeelding van 3200*2400 pixels. Hierna zal de gemiddelde kleur genomen worden van alle groepjes 4*4 pixels (soms ook 'tiles' genoemd). Het uiteindelijke aantal pixels na deze operatie zal dan de gevraagde 800*600 pixels zijn, en de randen zullen zachter ogen. Wegens de grote last op zowel buffer-geheugen en bandbreedte die SSAA met zich meebrengt wordt deze doorgaans vervangen door een lichter algoritme zoals bijvoorbeeld multisampling.

Multisampling

Multisampling is een snellere variant op supersampling, waarbij berekend wordt of het middelpunt van een pixel al dan niet binnen of buiten de te rasteren polygoon valt. De waarden van de pixels waarvan het middelpunt binnen de polygoon valt worden geïnterpoleerd, pixels waarvan het middelpunt buiten de polygoon vallen worden geëxtrapoleerd.

Morphologic

Morphologic AA is een relatief nieuwe methode waarbij niet tijdens het rasteren maar daarna de afbeelding wordt verwerkt. Het algoritme scant de afbeelding en registreert kartelingen binnen een bepaald oppervlak (tile). De grootte van het te scannen oppervlak is toonaangevend voor zowel de kwaliteit als de snelheid, die doorgaans omgekeerd evenredig zijn.

Textuur[bewerken]

Antialiasing filtert geen texturen, texturen zijn rasterformaten en dus op voorhand al gerasterd. In 3D games zijn de algoritmen die hiervoor worden gebruikt doorgaans bilinear of bicubic filtering voor het vergroten en verkleinen van de textuur (x,y), en trilinear of anisotropic filtering voor het filteren in de diepte (z). Bij texturen waarbij een 1 bit-alphakanaal gebruikt wordt kan ook aliasing optreden, omdat full-screen multisampling alleen werkt op basis van polygonen. Dit is doorgaans het geval voor texturen van planten, waarbij de planten een scherpe rand hebben en er in dicht-begroeide gebieden een soort van ruis ontstaat tussen de bladeren. Dit kan worden opgelost door de texturen op voorhand apart te rasteren met anti-aliasing, deze techniek staat bekend als 'alpha to coverage'.

Subpixels[bewerken]

Omdat van een lcd-scherm de fysieke volgorde van subpixels bekend is (rood, groen en blauw) kan hiermee rekening gehouden worden. Moet dan een schuine lijn worden getekend, dan wordt een subpixel uit een naburige pixel ook opgelicht. Het menselijk oog kan de individuele subpixels niet onderscheiden en zal dus niet merken dat een schuine lijn die zwart is plaatselijk bestaat uit rode, blauwe of groene pixels. Deze techniek is ontworpen voor lcd-schermen. Door anti-aliasing toe te passen bij lcd-schermen worden de letters normaal gesproken iets vetter en donkerder. Ook wordt het contrast iets hoger.

Het RISC OS besturingssysteem bevat al sinds 1990 ingebouwde ondersteuning voor font anti-aliasing. In Windows (XP) is in te stellen dat alle letters in alle programma's met anti-kartelvorming met subpixels worden weergegeven. Deze techniek heet in Windows ClearType. In X11 wordt deze techniek subpixel rendering genoemd. Het Mac OS X systeem bezit sinds zijn introductie deze techniek.

Computergames[bewerken]

Videogames, die gebruik maken van vector graphics, zoals van polygonen of curves, moeten hun vectoren rasteren voordat deze weergegeven kunnen worden als beeldpunten (pixels) op een computerscherm. Tijdens het rasteren van de vectoriële vormen zal de processor, doorgaans een CPU of een GPU, beslissen of een pixel binnen of buiten deze vorm valt.

Dit is waar het probleem van aliasing opduikt. Doordat er geen tussen-in waarden zijn (binair) zal de rand altijd hard zijn. Op het scherm nemen we dit doorgaans waar als een gekartelde rand, aangezien pixels vierkant zijn. Anti-aliasing is de benaming voor algoritmes die trachten de rand te verzachten door de pixels die tegen de rand liggen te interpoleren, om als dusdanig het gekartelde effect te elimineren.

Voor 3D videogames kunnen de instellingen voor anti-aliasing doorgaans ingesteld worden in het configuratiescherm van het spel zelf, of in de configuratie van de grafische stuurprogramma's.

Zie ook[bewerken]