Scene Graph
note
Work in progress — expand as the scene loader evolves.
Overview
The scene graph is built by loading a JSON scene file (scenes://name.json).
Each node in the file maps to a SceneObject in the C++ graph.
Node hierarchy
Children accumulate their parent's world transform top-down. A group node
is a pure transform container — it has no geometry of its own.
Node types handled by the loader
| JSON type | C++ handling |
|---|---|
model | Loads a model descriptor, creates a mesh scene object |
group | Creates a transform-only node, recurses into children |
light | Creates a light scene object (directional / point / spot) |
camera | Sets the active camera |
skydome | Loads a skydome model descriptor |
probe | Creates a reflection probe capture point |
marker | Named logical point, no visual |
trigger | Invisible volume, fires Lua events |
Model descriptor dispatch
When a model node is loaded, the descriptor type field decides the mesh
source:
| Descriptor type | Mesh source |
|---|---|
gltf | glTF 2.0 file from disk |
glitter_geometry | Procedural primitive generated at load time |
glitter_skydome | UV sphere for sky rendering |
See the Model Descriptors page for the full descriptor format.