Computergrafik

Szenengraphtraversal

Retained Mode | | Szenengraphen

Bei jedem Renderkommando des Szenegraphen wird

  • der Objektgraph depth-first traversiert (Tiefensuche, Tree Walk, Szenegraph Walk)
  • u.U. die Sichtbarkeit der traversierten Objekte anhand der Bounding-Box überprüft (Cull-Traversal)
  • die Hardware-Pipeline mit den traversierten Objekten gefüttert (Render-Traversal)

Bei jedem traversierten Geometrieknoten wird
beim Abstieg

  • das Dreiecksgitter zur Grafikhardware geschickt.

Und insbesondere bedeutet das, dass bei jedem traversierten Transformationsknoten
beim Abstieg

  • die aktuelle Matrix gespeichert wird (Stack: Push)
  • eine Multiplikation mit der jeweiligen Transformationsmatrix erfolgt

und beim Aufstieg

  • die aktuelle Matrix wieder hergestellt wird (Stack: Pop)

Einzige Ausnahme: Die Kameratransformation kommt immer zuerst.

Ein konkretes Beispiel aus der täglichen Arbeit: Wir möchten zwei Räder von einer Spielzeug-Lokomotive zeichnen.

Dies ist unser Szenenaufbau mit den entsprechenden Stackoperationen (Push und Pop). Die roten Ziffern kennzeichnen die Reihenfolge der Schritte im Direct Mode.

Und dies ist die entsprechende Hierarchie im Szenengraph (hier: Blender):

Hinweis: Ein kleiner Unterschied zur Skizze der Baumstruktur oben ist der Geometrie-Knoten der Basisplatte - dieser ist nur zu Zwecken der 3D-Visualisierung enthalten.

Retained Mode | | Szenengraphen

Options: