Overview: Scene Graph and Nodes
In a 3ds Max scene the objects that a user can create and manipulate in the viewports are called scene objects. Scene objects derive from the Object
class. Examples of scene objects are geometric objects (GeomObject
), lights (LightObject
), cameras (CameraObject
), particles, and world space modifiers (not to be confused with regular modifiers).
The geometry pipeline system of 3ds Max handles mesh processing and conversion. It allows objects to be operated on by modifiers, with the eventual generation of a triangle mesh suitable for rendering and display in the viewports. For more information, see the section on the Geometry Pipeline System. For information on how objects and modifiers work together to facilitate modification, see the section on Modifiers.
Like most modeling and rendering software 3ds Max has a notion of scene graph, which is a tree of scene nodes. Each node is a hub of information for scene objects in the scene. A node is implemented by 3ds Max and exposes its services through the INode
interface class.
A node has multiple responsibilities, including:
- Storing a pointer to a scene object.
- Storing information about what modifiers have been applied to the object
- Applying modifiers to an object
- Storing information about the geometry
- Stores information about the material that defines the surface properties of the object the node represents in the scene.
- Storing position, rotation and scale information of an object using a transform controller
- Managing appearance and surface properties through the material
- Storing node tree hierarchy information (e.g. parent - child relationships)
Usually you will get a node and then extract the specific 3ds Max scene object from it. In effect, the node wraps the scene object. When creating a scene object, you also have to create a node in order for it to appear in the scene. Nodes are managed entirely by 3ds Max, and are not implemented by plug-ins. Plug-ins can however access, create, and delete nodes.
For more information, see the section on Nodes.