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 (sog. Push)
- eine Multiplikation mit der jeweiligen Transformationsmatrix erfolgt
und beim Aufstieg
- die aktuelle Matrix wieder hergestellt wird (sog. 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.
![](http://th-nuremberg.de/cogr/uploads/Computergrafik/HierarchischeModellierung_Beispiel_3D_v2.jpg)
Und dies ist die entsprechende Hierarchie im Szenengraph (hier: Blender):
![](http://th-nuremberg.de/cogr/uploads/Computergrafik/HierarchischeModellierung_Beispiel_Szenengraph.jpg)
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 →