Graphics Reference
In-Depth Information
Abb. 9.17 Hierarchischer Z-Buffer
erhält man vier Z-Daten eines Pixels, die zum Schluss gefiltert und einem einzigen
Pixel zugeordnet werden.
Dies erhöht nicht nur den sowieso schon großen Speicherbedarf sondern auch
die Rechenzeit.
Die unsauberen Kanten ließen sich leicht vermeiden, wenn die Rückseiten des
Quaders entfernt worden wären (vgl. Abschn. 9.3 ). Die Facetten 3-7-8-4, 1-4-
8-5, 1-2-3-4 und 1-2-6-5 wären dann inaktiv gesetzt und müssten gar nicht erst
gezeichnet werden.
Z-Bufer-Varianten
Vom Z-Buffer-Verfahren gibt es eine Fülle unterschiedlichste Varianten, von denen
hier nur zwei kurz erläutert werden.
Hierarchischer Z-Bufer
Beim hierarchischen Z-Buffer werden die Tiefenwerte anstatt in nur einem Buffer
in mehreren Etagen (Z-Pyramide) mit unterschiedlicher Auflösung gespeichert. In
der untersten Etage liegt die maximale Auflösung. In den darüber liegenden werden
jeweils mehrere Pixel zu einem Bereich zusammengefasst, für den der maxima-
le vorkommende Z-Wert der Pixel des unter ihm liegenden Bereiches gespeichert
wird. Fasst man immer nur vier Pixel in der nächsthöheren Etage zusammen, dann
erreicht man schnell 8-10 Etagen. Für jede Etage ist ein entsprechend großes Array
erforderlich, und sich dort durchzufragen kostet Rechenzeit. Die Organisation eines
hierarchischen Z-Buffers ist also vor allem ein Optimierungsproblem.
Eine neue Facette wird nun nicht mehr pixelweise, sondern mit einem ganzen
Bereich, beginnend in der obersten Etage, verglichen. Ist sein Z-Wert größer, kann
gleich zum nächsten Bereich gegangen werden, man spart sich dementsprechen-
de Tests. Ist der Z-Wert kleiner, muss der Vergleich in der nächstkleineren Etage
durchgeführt werden (Abb. 9.17 ).
Diese Vorgehensweise nutzt Kohärenzeffekte aus, was bedeutet, dass aufgrund
der Größe einer Facette der Z-Wert eines Bildpunktes in einem kleinen Bereich mit
hoher Wahrscheinlichkeit gleich oder ähnlich den Z-Werten seiner benachbarten
Pixel ist.
Search WWH ::




Custom Search