6.4.1 Bildraumalgorithmen



next up previous contents
Next: 6.4.2 Objektraumalgorithmen Up: 6.4 Entfernung verdeckter Flächen Previous: 6.4 Entfernung verdeckter Flächen

6.4.1 Bildraumalgorithmen

Diese Algorithmen arbeiten im Gerätekoordinatensystem und entscheiden die Sichtbarkeit für jede einzelne Pixelposition. Die Genauigkeit der Auflösung entspricht der Geräteauflösung, und daher sind Vergrößerungen der Objekte in akzeptabler Form kaum zu erzielen. Diese Algorithmen werden meist nur für die Bildschirmausgabe verwendet. Meist werden für z-Buffer-Algorithmen spezielle Grafikprozessoren verwendet, welche z-Buffering direkt unterstützen und daher extrem schnell sind.

Der einfachste Bildraumalgorithmus ist der Tiefenpuffer-Algorithmus ({z-Buffering). Die notwendige Datenstruktur ist ein zweidimensionales Feld, das für jedes Pixel den z-Wert - die Tiefe vom Betrachter zum betrachteten Punkt - enthält. Die Größe des Feldes muß der Größe der Bildschirmauflösung bzw. des verwendeten Viewports entsprechen. Jede Fläche ist in Pixels aufzulösen und über die Pixelkoordinaten im Bildwiederholspeicher die Farbe und die z-Werte in das zweidimensionalen Feld einzutragen. Ist schon ein alter Eintrag im z-Buffer vorhanden, so wird dieser vom neuen Eintrag überschrieben, wenn er näher zum Betrachter liegt. Diese Überprüfung ist ein einfacher ganzzahliger Vergleich zwischen neuem und altem z-Wert.

Nach der Abarbeitung aller Flächen enthält der Bildwiederholspeicher die Abbildung der sichtbaren Flächen bzw. Flächenteile.

Scan-Line-Algorithmen stellen einen Spezialfall dieser Technik dar, wobei als Puffer nur eine einzige Zeile verwendet wird, um den Speicherbedarf zu verringern. Da der Bildschirm Zeile für Zeile abgearbeitet wird, sind alle Polygone zu finden, die eine bestimmte Scanline schneiden. Diese Suche kann bei horizontaler Scanline durch eine vertikale Vorsortierung der Polygone oder z.B. durch optimiert werden.



Martin Stiftinger
Fri Nov 25 16:50:24 MET 1994