3ds Max Modifier Stack
3ds Max was initially designed as a parametric modeling tool. The modifier stack is in the center of this concept. The modifier stack is a one-dimensional pipeline where data flows from the bottom of the stack (the base object) through zero or more object-space modifiers. The resulting object on top of the stack is passed to the Position/Rotation/Scale controllers to be positioned in 3D space and then the rest of the stack - the World Space Modifiers (a.k.a. Space Warps) are applied to calculate the final appearance of the object in the scene.
In the initial design of 3D Studio MAX R1, all base objects were parametric objects implemented by various plugins which generated either geometry data, bezier splines or lights, cameras, helpers etc. to pass up the stack. Later, editable base objects incl. Editable Mesh, Editable Spline, Editable Poly, Editable Patch etc. were introduced to allow the base object to store explicit geometry data and pass it up the stack.
Object Space Modifiers can perform different operations - they can modify
- vertex positions (deformers, usually gizmo-based like Bend, Taper, Skew etc.) ,
- geometry properties (Material Modifier changes face Material IDs, Normals Modifier flips face normals, Smooth modifier changes face smoothing groups, UVW Map applies UV coordinates etc.),
- topology (Edit_Mesh and Edit_Poly can be used to delete faces, add vertices and so on),
- selection (Mesh Select, PolySelect, Volume Select etc.)
- data type (TurnToPoly can convert incoming TriMesh to PolyMesh etc.)
etc.
Data flowing through the Object Space Modifiers is handled in (nomen est omen) object space before the geometry has been transformed into the 3D scene. The Data type can change explicitly or implicitly - for example, TurnToMesh modifier explicitly turns the incoming data to TriMesh, while Slice modifier implicitly turns the incoming geometry to PolyMesh in order to perform the slicing and passes PolyMesh up the stack.
The same modifier can be applied to an arbitrary number of supported objects - the modifier will be instanced across the multiple objects. It will appear in Italics in the modifier stack - any changes to any of the clones will apply the same changes to all other instances. Technically, it is the same modifier sitting on all modifier stacks.
Modifiers can have zero or more sub-object levels. Some modifiers like the deformers have a center and a gizmo which can be used to define the origin and the effect field of the modifier. Others like the selection modifiers provide sub-object levels like Vertex, Edge, Face etc. When such a modifier is switched to a sub-object level and corresponding sub-objects like vertices, edges or face are selected, the selection will be passed up the stack together with the result of the modified data. If the modifier above the selection supports operations at sub-object level, it will affect only the selected portions of the incoming geometry. Vertex selections in 3ds Max provide weight information via either procedural or (in PolyMesh) explicit soft selection values. Procedural soft selections can be used to let the effect of a modifier fade off over distance, explicit soft selection lets the user paint the influence of the modifier. The type of the selection is symbolized by an icon at the right side of the modifier. To stop the flow of such a selection, a selection modifier with no Sub-Object mode must be placed on the stack.
Once all object space modifiers have been processed, the resulting object is transformed into world space via the PRS tracks of the Scene Node the object is assigned to. The same modifier stack can be assigned to multiple scene nodes resulting in identical objects appearing at different positions in the scene. Such objects sharing a modifier stack are called instances in 3ds Max lingo. They will be displayed in Bold in the stack. It is also possible to create so-called references - a limited form of an instance where the modifier stack is instanced up to the point of the cloning, but allows independent modifiers to be added after this point to create variations of the object. In this case, both the base object and the modifiers below the point of reference are identical in all scene nodes, the modifiers above the point of reference can be unique. The point of reference is displayed by a thick gray line in the Modifier Stack. You can add modifiers above the line but later drag them down below the line, this adding them to the instanced part of the stack and causing the modifier to be applied to all referenced objects.
The Modifier Stack since 3dsmax 4 is represented by the so-called Stack View in the Command Panel. Other than the initial modifier stack in R1 to R3, the Stack View can display a large number of modifiers and their sub-levels in a single tree view, allows drag&drop reordering of modifiers on the stack, the drag&drop of modifiers from the stack to any scene objects to copy or instance a modifier and so on.
Modifiers in 3ds Max can also be categorized as light-weight and heavy. Initially, 3D Studio MAX R1 shipped with mostly heavy modifiers like Edit Mesh. Each time such modifier is added to the stack, a complete copy of all geometry data (vertices, faces, smoothing groups, material IDs etc.) would be created in memory and saved to disk. This is necessary to allow all the topological changes like deleting faces, changing material IDs etc. In Release 2 and later, a large number of light-weight modifiers were introduced. These modifiers are capable of doing only simple things but do not require a snapshot of the full geometry to operate. For example, in order to delete 100 faces from an object with 200 faces, in Release 1 one would add an Edit Mesh modifier, select the 100 faces there and hit the Delete button. A copy of the incoming mesh would be created inside the Edit Mesh modifier and the 100 faces would be deleted in it. Disabling the modifier or removing it completely would revert the object to its original form. In Release 2 and higher, one could add a Mesh_Select modifier to the stack and select the 100 faces in it, then add a DeleteMesh modifier to delete them. Neither of the two has to create a snapshot of the whole mesh - the mesh data flows from the base object up, the only thing stored is the face selection of the Mesh Select modifier which requires just few bytes to record the indices of the faces.
The beauty of the modifier stack is the fact that the artist is the one to decide when to use explicit techniques and what modeling changes to perform at which level of the stack. Where other 3D applications would create 100 nodes to store 100 minor tweaks to the geometry, in 3ds Max the user can encapsulate these modifications in just a few modifiers with the ability to turn them off, remove completely or change as needed at a later point without cluttering with too much data.
World Space Modifiers (WSM) applicable to geometry object are a special form of modifiers applied in (you guessed it!) world space after the object has been transformed into the scene. This means that the effect of the modifier is dependent on both the modifiers' and the object's transformation is space. Moving the Space Warp gizmo or the object relatively to the gizmo both would result in a change in the effect. Some WSMs can be applied directly to the modifier stack - mostly those depending on other objects to provide the deformation data (like the PathDeform, PatchDeform etc.). Originally, WSMs were always created as a stand-alone objects in the scene and required "binding" to the affected object - the Space Warp Binding object would appear as the representation of the World Space Modifier in the stack. Bold text
- This page was last modified 05:56, 16 November 2006.
- This page has been accessed 3,846 times.
- Content is available under GNU Free Documentation License.
- About CGWiki
- Disclaimers

