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.