Z-Puffer
← Viewport Transformation | ● | Normalen →
Speichern der normalisierten (nicht homogenisierten) Tiefe z für alle projizierten Punkte (bzw. Fragmente) im Z-Puffer:
Frame-Buffer | Z-Buffer |
- Alle Fragmente auf einem Sichtstrahls haben dieselbe Position auf dem Bildschirm
- Wenn die aktuelle Tiefe z eines Fragments kleiner als die des entsprechenden Wertes im Puffer ist, dann
- ist der Punkt sichtbar (d.h. nicht verdeckt)
- wird der Bildpunkt gezeichnet (d.h. Farbwerte werden überschrieben)
- und der Tiefenwert im Z-Puffer aktualisiert.
- Ansonsten wird der Bildpunkt
- nicht gezeichnet
- und der Z-Puffer nicht aktualisiert
- weil das Fragment verdeckt ist.
- Wenn die aktuelle Tiefe z eines Fragments kleiner als die des entsprechenden Wertes im Puffer ist, dann
Das Ergebnis des Z-Puffer Algorithmus ist unabhängig von der Reihenfolge der Dreiecke, d.h. es ist egal, in welcher Reihenfolge die Dreiecke gezeichnet werden.
Im Gegensatz zum sog. Painters-Algorithm, bei dem die Objekte tiefengestaffelt von hinten nach vorne gemalt werden. Hier ist die Reihenfolge nicht unabhängig von der Betrachterposition.
The Algorithmic Joy of Painting (by Bob Ross)
Converted to webm
← Viewport Transformation | ● | Normalen →