Skip to content
Part IA Michaelmas Term

Scene Graphs

Definition

A scene graph is a tree structure representing hierarchical relationships between objects in a scene.

Scene graph tree with transformations accumulating down the hierarchy

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 parent
  • node.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?