WikiDer > Tiefenpuffer

Dieptebuffer
Oben eine dreidimensionale Darstellung, unten die Tiefenpufferdarstellung

EIN Tiefenpuffer, ebenfalls Z-Puffer genannt, ist in 3D-Computergrafik verwendet, um zu bestimmen, welche Teile verschiedener Polygone sichtbar sind, wenn sie sich überlappen.

An einer Scanline-Renderer werden die Eckpunkte von a Polygon auf 2D projiziert, wonach das 2D-Polygon gefärbt wird (möglicherweise mit einer Textur oder erweiterten Pixel-Shadern). Ein hier auftretendes Problem besteht darin, dass bei Überlappung zweier Polygone darauf geachtet werden muss, das richtige Polygon in den Vordergrund zu bringen. In der Vergangenheit wurde dies meist mit Hilfe der Malalgorithmus. Dieser Algorithmus stellt sicher, dass die weiter entfernten Polygone früher gezeichnet werden als die näher gelegenen. Die näher beieinander liegenden Polygone überschreiben die zuvor gezeichneten Pixel.

Eine andere Lösung für dieses Problem ist ein Tiefenpuffer, ein Speicher, der für jedes Pixel des zu rendernden Bildes speichert, wie weit dieses Pixel von der Kamera entfernt ist. Wenn ein weiteres Polygon auf demselben Pixel gezeichnet werden soll, prüft der Renderer, ob der Abstand dieses neuen Pixels geringer ist als der aktuelle Pixel. Wenn dies der Fall ist, wird das neue Pixel gezeichnet und der Wert im Tiefenpuffer wird ebenfalls angepasst. Wenn das neue Pixel weiter entfernt ist, wird das alte Pixel beibehalten. Auf diese Weise sind immer die der Kamera am nächsten liegenden Polygone sichtbar, auch wenn sie in einer ganz anderen Reihenfolge gerastert werden.

Vorteile eines Tiefenpuffers

  • Bei weitem die einfachste Sortiermethode.
  • Einfach in Hardware zu implementieren. So ziemlich jede Grafikkarte unterstützt es heutzutage

Nachteile eines Tiefenpuffers

  • Transparente Polygone können nicht sortiert werden, daher müssen transparente Polygone immer noch von hinten nach vorne gezeichnet werden (Malalgorithmus)
  • Kostet ziemlich viel Erinnerung.