Frage

Was ist der Unterschied zwischen Gesicht Gebrauch zurück Culling und ein Puffer von Tiefe in OpenGL?

War es hilfreich?

Lösung

Backface-Culling ist, wenn OpenGL bestimmt, welche Gesichter vom Betrachter abgewandt sind und daher unsichtbar. Denken Sie an einen Würfel. Egal, wie Ihre drehen Sie den Würfel, 3 Gesichter immer unsichtbar sein. Herauszufinden, welche Gesichter diese sind, entfernen Sie sie aus der Liste der Polygone gezeichnet werden, und Sie nur Ihre Zeichnungsliste halbiert.

Tiefenpufferung ist ziemlich einfach. Für jedes Pixel von jedem Polygon gezeichnet, zu vergleichen, zu dem z-Puffer seiner z-Wert. wenn es kleiner als der Wert in dem Z-Puffer den z-Pufferwert als den neuen Z-Puffer-Wert eingestellt. Wenn nicht, werfen Sie die Pixel. Tiefenpufferung gibt sehr gute Ergebnisse, kann aber ziemlich langsam sein, wie jedes Pixel erfordert einen Wert Lookup.

In Wirklichkeit gibt es nichts Vergleichbares zwischen diesen beiden Methoden, und sie sind oft beide verwenden. Bei einem Würfel können Sie zuerst, dann zieht sie mit Pufferung z Culling mit der Hälfte der Polygone ausschneiden.

Ausmerzen kann auf den Polygonen abgeholzt gemacht, aber es ist kein Sortieralgorithmus. Das ist, was Z-Pufferung ist.

Andere Tipps

Ein gegebenes Dreieck hat zwei Seiten, die Vorderseite und die Rückseite. Die Seite, die Sie sind auf der Suche nach der Reihenfolge bestimmt wird, die Punkte in der Eckenliste erscheinen (auch die Wicklung genannt). Typischerweise haben alternierende Listen von Dreiecken Wicklung, so dass Sie die vorhergehenden zwei Punkte wiederverwenden können, aber die gegenüber einem gegebenes Dreieck in dem Streifen nicht abwechseln. Rückseite Culling ist der Optimierungsschritt, bei dem in der Szene, in Dreiecken, die aus der Sicht ausgerichtet sind entfernt von der Liste von Dreiecken entfernt werden zu ziehen.

A Tiefenpuffer (Z-Puffer) verwendet wird, auf das nächste, was zu hängen (die Tiefe der Ansicht relativ), die bereits gemacht worden ist. Wenn das, was als nächstes in der List-aufkommt hinter etwas ist, dass ich bereits gezeichnet haben (dh sie hat eine Tiefe, die Orte es weiter weg) Ich kann es überspringen zeichnen, wie es behindert wird. Wenn die neue Sache näher zu ziehen ist, dass ich es zeichnen und ich den Tiefenpuffer mit dem neuen, genaueren Wert aktualisieren.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top