Zum 3DCenter Forum
Inhalt




Multisampling Anti-Aliasing unter der Lupe

22. Mai 2003 / von aths / Seite 1 von 8


   Einleitung

Wir möchten heute ein spezielles Thema detailliert auseinander nehmen: Multisampling Anti-Aliasing. Grundsätzliches zum Thema findet sich ausführlich in einem älteren Artikel, dem ebenfalls einige Seiten zum Multisampling gewidment sind. Während dort nur das prinzipielle Verfahren angerissen wurde, gehen wir heute richtig ins Detail.

Dabei werden im Schnelldurchlauf noch mal einige Dinge angeschnitten, die für dieses Thema wichtig sind, jedoch ohne die vorbereitenden Ausführungen zu vertiefen. Wir hoffen, dass dieser Artikel auch ohne "Begleitmaterial" verständlich ist, ansonsten verweisen wir auf unser Archiv.

Das Thema heute ist keine graue Theorie, sondern die Funktion konkreter, kaufbarer Hardware. Als Beispiel dient uns zunächst das Multisampling-Verfahren von GeForce3, 4 Ti bzw. FX, später wird auf das Multisampling der Radeon (verfügbar ab Radeon 9500) eingegangen.

Die Aufzählung zeigt, dass auf praktisch allen modernen Karten Anti-Aliasing heutzutage mit Multisampling realisiert wird. Das Verfahren muss demzufolge seine Vorteile haben, denen natürlich ein bedeutender Teil des Artikels gewidmet ist. Auf der anderen Seite bekommt man leider nichts geschenkt, die Nachteile, die man auf den ersten Blick gar nicht so erahnt, werden ebenfalls besprochen.


   Der Raster-Prozess: Wie Geometrie zu Grafik wird

Wenn die Grafikkarte ein Dreieck bekommt, welches sich ja in einem gedachten Raum befindet, wird es zunächst auf die Bildschirm-Fläche projiziert. Dieses Dreieck hat jetzt nur noch 2D-Koordinaten, X und Y. (Die Z-Koordinate für die Tiefe wird allerdings noch mitgespeichert.)

Zunächst stellt das Triangle Setup fest, in welchen Bildschirm-Zeilen sich das Dreieck befindet: Es durchsucht dafür alle drei Eckpunkte und fängt beim kleinsten Y-Wert mit dem Rendern an, und geht bis zum größten Y-Wert durch. Da die X-Werte der Eckpunkte natürlich weiterhin bekannt sind, lässt sich nun für jede Zeile auch ermitteln, an welcher X-Position das Dreieck in der aktuellen Zeile beginnt bzw. endet.

Die gewählte Darstellung soll nur eine prinzipielle Übersicht über die Raster-Funktion bieten, weil Multisampling darauf aufbaut. Die spätestens mit Early Z eingeführte Entkopplung des Triangle Setups von der Pipeline bleibt unberücksichtigt.


Beispiel: Ein Dreieck bedeckt vier Zeilen.

Welche Texturen auf das Dreieck sollen, "weiß" die Pipeline durch die Initialisierung der Texture Stages. Für jeden Eckpunkt des Dreiecks wird nun für jede Textur auch eine Textur-Koordinate mit übergeben. Diese Koordinate wird zeilenweise und dann pixelweise entsprechend angepasst, damit die Pipeline für dieses Pixel die richtige Stelle aus der Textur sampelt. Hierbei findet übrigens eine perspektivische Korrektur statt, eine lineare Interpolation der Textur-Koordinaten-Achsen reicht nicht aus. Moderne Grafikkarten haben vermutlich längst eine eigene Logik, welche aus der Pixel-Koordinate im Dreieck direkt die perspektivisch korrigierte Textur-Koordinate berechnet. Die noch gespeicherten Z-Werte werden übrigens ebenfalls entsprechend mitbehandelt, damit man pixelweise auch die Tiefe des Pixels kennt.

Es liegen nun alle erforderlichen Daten vor, um das Pixel zu texturieren. Die TMU der Pipeline bekommt die (perspektisch korrigierte) Textur-Koordinaten und liefert das Textur-Sampel zurück, für das entsprechend der Filter-Einstellungen in der Regel 4 oder 8 einzelne Textur-Texel benötigt werden. Das ist in unserem Filter-Artikel ausführlich dargestellt.

Wir haben nur die Punkte genannt, die für das Anti-Aliasing wichtig ist. Es sei schon jetzt verraten, dass an dieser Stelle ein zukünftiger Artikel ansetzen wird, doch zurück zum Thema Multisampling-Anti-Aliasing.


So sieht das gerasterte Dreieck aus: Informationsverlust an den Kanten.

Wie die Abbildung zeigt, treten beim Raster-Prozess unweigerlich Ungenauigkeiten auf. Das gilt nicht nur für die Behandlung der Geometrie, sondern auch für das Texturing, wie später noch zu besprechen sein wird.

Zunächst zu den Kanten: Wie kann man dieser Ungenauigkeiten Herr werden?






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

Shortcuts
nach oben