We support a hierarchical scene graph for defining a 3D scene. We define the Node to be the basic building block. Currently a node may be a:
Group
Mesh
Light
All nodes inherit the transform (coordinate space) of their parent.
Groups define a set of children nodes, and a coordinate space which all children nodes inhabit.
The complete order of transformations within a Group node is the following:
Inherited transform from parent
Local (bind) transform from scene graph
Deformation transforms
Translation
Rotation (around X-axis, followed by Y-axis and finally Z-axis)
Scaling
Meshes and Lights are leaf nodes.
Meshes define:
Geometry
Material information related to portions of the geometry.
Lights may be one of 2 types:
Directional, best used for modelling distant constant light sources, such as the sun
Point (or omni-directional) lights, best used for lights that emanate from a position, such as a lamp, etc.