Zum 3DCenter Forum
Inhalt




Anti-Aliasing im Detail

24. Februar 2002 / von aths / Seite 12 von 18



  Anti-Aliasing Kombinationen
  (Die undokumentierten Modi der GeForce3)

Undokumentiert und nur über diverse Tweaker oder die Windows Registry zu erreichen, wird zunächst erst einmal auch 2x2-Anti-Aliasing mit zusätzlicher Glättung angeboten:

2x2 mit Quincunx.
2x2 mit Quincunx.

Es fließen pro Pixel Informationen von insgesamt 9 Subpixeln ein! Ist dass das bessere Quincunx? Nun, dort werden pro Pixel von 5 Subpixel-Informationen 4 zusätzlich geglättet. Nur der in der Mitte bleibt unbehandelt. Hier werden 8 von 9 Subpixel-Informationen zusätzlich geglättet. Diese 9 Informationen stammen allerdings nur aus insgesamt 4 Pixeln. Damit nimmt die Unschärfe noch zu. Für Kantenglättung mag das angehen.

Doch die Textur-Unschärfe nimmt unerträgliche Ausmaße an. Der Autor hält diese Form von Anti-Aliasing deshalb für komplett sinnlos.

Neben Multisampling beherrscht der GeForce3 weiterhin Supersampling. Hierbei scheint es sich allerdings um einen Treiber-Trick zu handeln, also um die gleiche Oversampling-Technik mit vergrößertem Backbuffer, die im Vorgänger zum Einsatz kam. Arbeitet die Karte schon am Füllratenlimit, halbiert 2x Supersampling nach wie vor die Framerate (2x2 Supersamling ist mit bestimmten Treibern ebenfalls möglich).

Das Oversampling erlaubt einige interessante Spielereien. Es wurde gezeigt, dass diese Karte 4x Anti-Aliasing nur mit einem ordered grid Abtastmuster beherrscht. 2x Multisampling tastet allerdings im rotated grid Verfahren ab. Wenn man Multi- und Supersampling kombiniert, ergibt sich nun ein Muster, welches von nVidia später 4xS-Modus getauft wurde. Denn zur Krönung ergibt es in der Tat 2x Multisampling mit 2x vergößertem Backbuffer, welcher downgesampelt wird:

2x Supersampling mit 2x Multisampling. Die unterschiedlichen Farben veranschaulichen den Effekt, dass pro Pixel zwei Textur-Werte zum Zuge kommen. Da das beim Supersampling sowieso immer der Fall ist, wurden die einzelnen Subpixel dort farblich nicht unterschieden.
2x Supersampling mit 2x Multisampling. Die unterschiedlichen Farben veranschaulichen den Effekt, dass pro Pixel zwei Textur-Werte zum Zuge kommen. Da das beim Supersampling sowieso immer der Fall ist, wurden die einzelnen Subpixel dort farblich nicht unterschieden.

Das ist ein sinnvoller Kompromiss der schnellen Multisampling-Methode mit zusätzlichem Supersampling, was schärfere Texturen erlaubt. Außerdem findet in dieser Kombination in jedem Fall eine (mäßige) Glättung von Kanten statt, die durch einen Alpha Test (oder Color Key) entstehen. Denn bei älteren Engines hat Multisampling Anti-Aliasing einen eklatanten Nachteil! Zäune werden oft als Texturen dargestellt, die "Löcher" haben. Da diese Löcher in der Textur sind, und Multisampling an Texturen nichts weiter bewirkt, sehen sie ziemlich häßlich aus.

Verstärkt wird das ganze, wenn ein anisotroper Filter zum Einsatz kommt. Das glättet zwar die Texturen sehr gut, die Löcher jedoch gar nicht. Außerdem werden sehr hohe Textur-Auflösungen benutzt, obwohl die Textur-Löcher (im Gegensatz zum Rest) ungefiltert bleiben. Damit sind extreme Moiré-Effekte sichtbar. Entweder verzichtet man auf den anistropen Filter, was jedoch gehörige Bildqualität-Einbußen mit sich bringt. Oder man nutzt Supersampling-Anti-Aliasing, wo auch durchsichtige Texturen in jedem Fall geglättet werden.

Moderne Engines nutzen dagegen ein Verfahren namens Alpha Blending, damit durchsichtige Bereiche per Textur-Filter geglättet werden. Diese Methode benötigt allerdings eine Menge Bandbreite.

Wie erwartet lässt sich dieses Verfahren mit Quincunx auf die Spitze treiben:

2x Supersampling mit Quincunx: Es fliessen Informationen aus insgesamt 8 Subpixeln ein.
2x Supersampling mit Quincunx: Es fliessen Informationen aus insgesamt 8 Subpixeln ein.

Auch hier ist die zusätzliche Glättungsstufe übertrieben: Unscharfe und damit subjektiv glatte Kanten werden durch matschige Texturen erkauft. Der Unschärfe-Effekt sinkt mit steigender Auflösung. Dann allerdings sinken ja auch die sichtbaren Aliasing-Effekte, so dass eine einfachere Methode ohne zusätzliche Glättung genauso gute Kanten, aber bessere Texturen liefert.

Mit der gleichen Methode, mit der die Anti-Aliasing-Fähigkeit von GeForce 1/2 Karten treiberseitig nachgerüstet wurde, sind in Verbindung mit den Multisampling-Fähigkeiten der GeForce3 zusätzliche Spielereien möglich.

Die beiden zuletzt präsentierten Muster glätten vor allem horizontale Kanten sehr gut, vertikale dagegen wesentlich schlechter. Um das auszugleichen, bliebe - in der Theorie - der ultimative Overkill:

Zumindest theoretisch möglich: 2x Multisampling mit 2x2 Supersampling kombiniert.
Zumindest theoretisch möglich: 2x Multisampling mit 2x2 Supersampling kombiniert.

Bislang ist diese Möglichkeit aber nicht im Treiber implementiert - und es ist auch nicht davon auszugehen, dass dies jemals der Fall sein wird. Eine GeForce3 hätte für einen sinnvollen Einsatz weder genügend Leistung, noch ausreichend RAM. Der Autor hält es für nicht ausgeschlossen, wenn auch unwahrscheinlich, dass dieser Modus bei der GeForce4 Ti inoffiziell verfügbar gemacht wird.

Es ist fraglich, ob auch 2x rotated grid Supersampling mit Quincunx möglich ist. Wahrscheinlich erlaubt das die Hardware nicht, hier würde jedoch ein brauchbarer Kompromiss zwischen subjektiv besseren Kanten dank Überfilterung und hinnehmbarer Texturunschärfe herauskommen.

In den vorstehenden Kapiteln wurden die Vorteile von Multisampling gezeigt, doch sind auch Nachteile sichtbar geworden. Ein Grund, zurück zum Supersampling zu gehen?






Kommentare, Meinungen, Kritiken können ins Forum geschrieben werden - Registrierung ist nicht notwendig Zurück / Back Weiter / Next

Shortcuts
nach oben