Anti-Aliasing im Detail
24. Februar 2002 / von aths / Seite 14 von 18
Pseudozufälliges Supersampling | |
(Wege, die Qualität noch weiter zu steigern) |
Multisampling bringt gegenüber Supersampling zwei Vorteile: Die Füllrate wird kaum beeinträchtigt und es wird Bandbreite gespart. Der Nachteil ist die aufwändigere Implementation und die fehlende Glättung bei Kanten, die durch Alpha Testing enstehen. Das wurde bereits angesprochen:
Man kann einen sogenannten Alpha-Wert einführen, um in Texturen einige Bereiche als durchsichtig zu markieren. Diese Stellen werden dann vom Rendern ausgeschlossen. Solche "Löcher" in Texturen sind nützlich, um bestimmte Formen mit möglichst wenig Dreiecken darzustellen. Beispielsweise ein Astloch in einem Zaunpfahl: In der Textur wird eine Kreisscheibe als transparent markiert.
Die so enstandenen Kanten unterliegen beim Multisampling keiner Glättung - das Auge wird mit hässlichem Aliasing gequält. Abhilfe bietet ein Verfahren namens Alpha Blending, womit wenigstens der Textur-Filter glätten darf. Nachteilig ist hierbei allerdings die deutlich größere Bandbreiten-Anforderung, da eine Verknüpfung mit dem Hintergrundpixel stattfindet. Dieser muss ja erst mal aus dem Speicher gelesen werden, was Zeit kostet.
Ist einmal genügend Füllrate und Bandbreite vorhanden, werden die Multisampling-Vorteile belanglos und die Nachteile bleiben. Also könnte man zusätzlichen Hardware-Aufwand für Supersampling betreiben. Was wäre denn jetzt noch generell beim Anti-Aliasing verbesserungswürdig?
Der Wechsel von ordered auf rotated grid brachte für die Kantenglättung einen Vorteil. Doch auch beim rotated grid Verfahren bleibt das Muster für jeden einzelnen Pixel gleich. Über eine größere Fläche gesehen wiederholt es sich auch dann, wenn das Raster gedreht wurde. Das menschliche Auge ist nun einmal auf Mustererkennung trainiert. Man müsste nicht nur pro Pixel, sondern auch über größere Flächen unregelmäßig abtasten.
Ganz so unregelmäßig sollte es dann aber doch auch nicht sein. Denn wirklich zufällig verteilte Subpixel würden in gewissen Klumpen auftreten. Damit wäre die Forderung nach gleichmäßiger Entfernung der Subpixel untereinander nicht mehr erfüllt. Um das zu glätten, müssten schon sehr viele Subpixel zum Einsatz kommen. Das ist beim ohnehin aufwändigen Supersampling kaum vertretbar. Man könnte daher aus mehreren "guten" vorgefertigten pseudozufälligen Abtastmustern wählen. Dies verhindert ebenfalls eine erkennbare Regelmäßigkeit.
Es wäre natürlich auch ein "gemeiner Trick" denkbar. So wie man die scheinbare Kantenglättung durch Unschärfe-Filter erhöhen kann, könnte man auch nachträglich der regelmäßen Abtastung entgegen wirken: Durch Einsatz eines Rauschfilters. Eine vorsichtig eingesetzte Verrauschung wäre auf dem Weg zum Fotorealismus gar nicht mal so falsch. In jedem Fall ist eine unregelmäßige Abtastung der regelmäßigen vorzuziehen, da der sanfte Effekt des Rauschens das Bild natürlicher wirken lässt.
Ein computergeneriertes Bild wirkt weniger steril, wenn über diesem ein nicht direkt wahrnehmbares Rauschen liegt. Supersampling-Anti-Aliasing mit (scheinbar) zufälligen Samplepositionen ermöglicht das und verhindert gleichzeitig wirkungsvoll Moiré-Effekte.
Ein zweites Problem stellt die generelle Gleichbehandlung aller Pixel dar. In der Realität erscheinen entfernte Objekte unschärfer als nahe. Beispielsweise hat ein Baum, welcher in weiter Ferne steht, ohne Anti-Aliasing einen völlig scharfen Umriss. Mit Anti-Aliasing wird dieser zwar geglättet, aber nur genauso stark wie bei einem Baum im Vordergrund. Es wäre begrüßenswert, wenn weit entfernte Objekte einem stärkeren Anti-Aliasing unterzogen werden.
Da diese auch kleiner sind, gibt es dafür weniger zu berechnen, als wenn sie im Vordergrund stehen würden. Somit wäre diese Forderung nach adaptiven Anti-Aliasing ohne gewaltige Leistungseinbußen umsetzbar.
Ob ATi´s "Smoothvision" genanntes Anti-Aliasing-Verfahren das wirklich kann, wie hier und da angedeutet, ist offen. Scheinbar würde dazu eine spezielle Unterstützung durch das jeweilige Spiel erforderlich sein. Soweit wir wissen, ist das Verfahren in der Radeon 8500 zumindest so ausgelegt, dass dieses Verfahren im Gegensatz zu allen anderen bisherigen Consumer 3D-Chips wenigstens nicht unmöglich gemacht wird. Dennoch sind hier wir skeptisch, so lange ATi diese Fähigkeit nicht demonstriert.
Wie Smoothvision funktioniert, ist Thema des folgenden Kapitels.