3ds Max Modeling
Contents |
Editable Mesh
In the initial release of 3D Studio MAX R1, the only way to edit geometry was via the Edit Mesh modifier on the Modifier Stack. In other words, every geometry object started as a geometry primitive base object and in order to edit topology or position at Sub-Object level, a modifier was required. In the 1.1 update, an experimental mode (enabled via a switch in the 3dsmax.ini file) was introduced which allowed geometry objects to be collapsed to a so-called Editable Mesh, thus allowing for explicit modeling without using the Modifier Stack. This mode was later made standard, and the Editable Mesh base object became the earliest way to model explicitly without history.
The Editable Mesh base object uses the same TriMesh geometry structures used to pass triangle meshes (all polygons have 3 vertices and 3 edges with the option to make edges invisible for fake quad or n-gon appearance) through the Modifier Stack implemented in 3D Studio MAX since day one. The TriMesh consists of a vertex list where each vertex is represented as a point in 3D space, a face list where each face is a Vector3 value with the 3 components pointing at the indices of vertices in the vertex list, and several additional lists containing per-face material IDs, Edge visibility flags for the 3 edges of every face, a Smoothing Groups value containing 32 bits to define smoothing over edges etc.
The Editable Mesh provides 5 Sub-Object levels - Vertex, Edge, Face, Polygon (adjacent faces sharing invisible edges) and Element (continuous group of faces sharing at least one vertex with another face from the group). Since Edges do not really exist as building blocks of the TriMesh structure (they are implicitly defined by the 3 sides of a triangular face and the corresponding 3 visibility flags), performing Edge-Based modeling operations like Edge Loop and Edge Ring selection, Connect Edges etc. is not an option - searching for edges in the TriMesh structure and converting vertex and face selections to edge selections is very slow. While most of these operations could be added via MAXScript, modeling with Editable Mesh at edge level would really be not practical.
Editable Poly
The Editable Poly modeling tools were first introduced in 3dsmax 4. The implementation of true polygonal meshes using the so-called Winged Edge technology was a top Wish List item for years and the new system needed several releases to mature. The basic tools and rather extensive MAXScript support were implemented in Version 4 of the software. Additional free scripts like MeshTools by Laszlo Sebo made the use of the first implementation practical. In version 5, most of the missing features previously available as free scripts were added to the core functionality of the program. In later releases, a few smaller changes were made to further improve the feature set.
The PolyMesh data structure used by the Editable Poly class is based around vertices and edges as opposed to vertices and faces in the TriMesh of Editable Meshes. Polygons are being defined by the edges and not the other way round. This allows VERY fast access to edges and enables features like Edge Loop and Edge Ring selection, quick cutting through edges (and thus through polygons) etc.
NOTE: Since both the internal geometry pipeline of 3ds Max and the graphics APIs used to send data to the graphics card were not designed to handle Editable Poly, there is a certain overhead related to displaying Editable Poly objects in the viewports - in the worst case, Editable Poly objects can redraw up to 4 times slower when panning and orbiting around them when compared to the same object as Editable Mesh. To speed up the display of static objects when navigating the scene, the user can add a TurnToMesh or Mesh Select modifier on top of the stack to cache the resulting TriMesh value evaluated on top of the stack and avoid the time-expensive conversion of PolyMesh to TriMesh on each viewport redraw.
Since Version 6, an Edit Poly modifier was added featuring the same tools as the Editable Poly base object but allowing non-destructive modifier stack-based modeling and also the animation of the modeling operations.
Editable Poly modeling is often used for so-called "low-poly modeling" usually associated with realtime graphics for games. But these lower-resolution meshes can also be quickly subdivided using the MeshSmooth modifier, TurboSmooth modifier or the built-in smoothing feature of the Editable Poly base object itself to create a higher-order surface representation based on the "cage" defined by the underlying simpler model.
Surface Tools - Spline-To-Patch Modeling
Surface Tools was originally a 3rd party plug-in, but Kinetix hired its author, Peter Watje and included this feature in version 3.0. Surface Tools allows the creation of a patch-based surface on a cage defined by regular 3ds Max splines. The Surface modifier creates a surface from every 3 or 4 vertices in a grid. This technique was initially seen as an alternative to 'Mesh' or 'Nurbs' modeling, as it enables a user to interpolate curved sections with straight geometry (for example a hole through a box shape). It also appeared at that point that future games might implement bezier patches as an alternative to polygon models. Although the surface tool is a useful way to generate parametrically accurate geometry, it lacks the 'surface properties' found in the similar Edit Patch modifier, which enables a user to maintain the original parametric geometry whilst being able to adjust "smoothing groups" between faces.
NURBS
NURBS stands for Non-Uniform Rational B-Splines. NURBS have become an industry standard for designing and modeling surfaces. They are especially suited for modeling surfaces with complicated curves. The tools for modeling with NURBS do not require an understanding of the mathematics that produces these objects. NURBS are popular because they are easy to manipulate interactively, and because the algorithms that create them are both efficient and numerically stable. Unfortunately, the NURBS implementation introduced in 3D Studio MAX R2 back in 1997 and improved in 2.5 and 3.0 lacks in both the speed and usability areas and is not used much in practice.
- This page was last modified 05:47, 16 November 2006.
- This page has been accessed 1,246 times.
- Content is available under GNU Free Documentation License.
- About CGWiki
- Disclaimers

