Part IA Michaelmas Term
Scene Graphs
Definition
A scene graph is a tree structure representing hierarchical relationships between objects in a scene.
Transformation Inheritance
Child objects inherit transformations from parent nodes:
- Each node has its own local transformation
- World transformation = product of all parent transformations
Traversal Pseudocode
traverse(node, T_parent):
M = T_parent * node.T * node.E
node.draw(M)
for child in node.children:
traverse(child, T_parent * node.T)
where:
node.T: Transformation relative to parentnode.E: Optional additional transformation (e.g., animation)
Example: Robot Arm
Body → Shoulder → UpperArm → Elbow → LowerArm → Hand
- Body: Positioned in world space
- Shoulder: Rotates relative to body
- Elbow: Rotates relative to upper arm
- Hand: Rotates relative to lower arm
Each transformation is relative to its parent.
Benefits
- Natural representation of articulated objects
- Easy animation (just modify local transforms)
- Efficient rendering (traverse tree, accumulate transforms)
- Supports instancing (same object under different parent nodes)
Summary
- Scene graphs organise objects hierarchically
- Children inherit parent transformations
- Traversal accumulates transformations down the tree
- Natural for articulated objects and animations
Past Paper Questions
2021 Paper 3 Question 4: Explain how scene graphs work. How are transformations accumulated?