Graphics Reference
In-Depth Information
9.5.4 Z-Bufer-Verfahren
„Z-Buffer“ besagt zunächst nur, dass die Bildtiefe in Z-Richtung orientiert ist und
folglich auf die XY-Ebene projiziert wird. Das Prinzip des Z-Buffer-Verfahrens ist
von der Idee her ähnlich einfach wie das Painterverfahren. Im Gegensatz zu diesem
ist das Z-Buffer-Verfahren kein Objektraum- sondern ein Bildraumverfahren.
Eine oberflächliche Gegenüberstellung:
Painter : Der Aufwand liegt im Aufbau der Prioritätsliste, die die Reihenfolge
der Facetten in Z-Richtung enthält. Zum Aufbau dieser Liste werden die Koor-
dinaten im Global- bzw. Viewsystem verwendet und die Berechnungen erfolgen
mit Gleitkommagenauigkeit. Anhand der Prioritätsliste wird jede Facette einzeln
mithilfe der GDI -Funktionen DrawPolygon, FillPolygon mit Gerätekoordina-
ten in den Bildspeicher geschrieben.
Z-Buffer malt keine einzelnen Facetten, sondern am Ende der Aufbereitung den
gesamten Bildspeicher auf einmal. Für jede 1 Quadratpixel große Teilfläche ei-
ner Facette wird mittels ihrer Ebenengleichung deren Z-Tiefe ermittelt. Ist diese
kleiner als die im Bildspeicher für das Pixel bereits eingetragene Tiefe einer
anderen Facette, wird die Tiefe mit der neuen Z-Tiefe und die Farbe mit der
aktuellen Farbe der Teilfläche überschrieben und damit pixelweise das Verde-
ckungsproblem gelöst. Im Gegensatz zum Painter ist eine Prioritätsliste für die
Facetten nicht erforderlich, die Reihenfolge ihrer Verarbeitung ist ganz beliebig.
Das Z-Buffer-Verfahren benötigt für jedes Pixel zwei Informationen: den Farbwert
und die Z-Koordinate der zugehörigen Facetten-Teilfläche. Beides wird in folgender
Datenstruktur deklariert:
Public Structure Buffer
Public Farbe As Color
' Pixelfarbe
4 Byte
Public Tiefe As Single
' Z-Koordinate
4 Byte
End Structure
Bei einem mittelprächtigen Bildspeicher von beispielsweise 600 800 Pixel
Public Bild(600,800) As Buffer ' Bildspeicher
ergibt sich die Array-Größe zu 600 800 8 D 3;84 MB. In den Anfangsjahren
der Computerei waren RAM-Speicher in dieser Größe eine Utopie. Alle Bemühun-
gen liefen notgedrungen darauf hinaus, Verfahren zu entwickeln, die mit möglichst
wenig Speicher auskamen. Man ging sowohl beim Farbmodell als auch beim Spei-
chern der Tiefenwerte Kompromisse ein, die zu kleineren Bildspeichern führten.
Ein paar Beispiele nachfolgend.
Die Variable Farbe kann man ohne Verlust von Informationen auch durch ih-
re RGB-Komponenten beschreiben, die jeweils nur 1 Byte lang sind; siehe auch
Kap. 4 .
Search WWH ::




Custom Search