Computergrafik

Z-Puffer

OpenSceneGraph | | Z-Buffer Fighting

Speichern der normalisierten (nicht homogenisierten) Tiefe z für alle projizierten Punkte (bzw. Fragmente) im Z-Puffer:

Frame-BufferZ-Buffer
RGBMapDepthMAP
  • 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.

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.

Siehe The Algorithmic Joy of Painting


OpenSceneGraph | | Z-Buffer Fighting

Options: