MultiRes - superclass: modifier

MultiRes - superclass: modifier; super-superclass:MAXWrapper - 10:0 - classID: #(1788759147, 1229407453)

The MultiRes modifier reduces the memory overhead needed to render models by decreasing the number of vertices and polygons. This is useful not only within 3ds max but for game and Web content creators who export models for use outside of 3ds max. MultiRes offers several advantages over the Optimize modifier, including faster operation and the ability to specify reduction as an exact percentage or vertex count.

Constructor

MultiRes ...

Properties

<MultiRes>.Vertex_Count                    Integer      default: 0   --  animatable; integer

The total number of vertices in the modified object. Use this control to set the maximum number of vertices in the output mesh. Adjusting this setting alters the Percent value as well.

<MultiRes>.Vertex_Percentage            Float        default: 100.0   --  animatable; float

The modified object's vertex count as a percentage of the overall number of vertices in the original mesh. Adjusting this setting alters the Count value as well.

Note: After you type in a specific percentage, such as 30, you might find that the software changes the value to a slightly lower one, such as 29.971. This is due to the relationship between the overall number of vertices in the model and the percentage calculation. It is not a bug, but simply the closest solution to your request.

<MultiRes>.Vertex_Merging               BooleanClass default: false   --  boolean

When on, lets MultiRes merge vertices between discrete elements in a model.

For example, if you apply MultiRes to a teapot, which comprises four separate elements, and turn on Vertex Merging, as you adjust the vertex resolution, the separate components will meld together into one contiguous lower-resolution object.

To control Vertex Merging, you can set a Merge Threshold. This value determines the 3ds max unit distance within which to merge elements.

<MultiRes>.Threshold                    Float        default: 0.0   --  float

This spinner value sets the maximum distance in 3ds max units between vertices in order for those vertices to be considered for merging. Once this threshold is achieved, then the vertices between elements will be welded together as the mesh is reduced in complexity.

Note: To eliminate only coincident vertices, set Merge Threshold to 0.0. This is similar to the Weld Vertex function.

<MultiRes>.Merge_Within                 BooleanClass default: false   --  boolean

When on, MultiRes merges the boundaries of adjacent elements and vertices within elements. Many objects can contain multiple groups of vertices that don't share connectivity. A simple example of this is the Teapot object. It comprises four different elements: the body, the handle, the spout, and the lid. Normally, MultiRes optimizes each discrete element in a mesh on its own.

The default behavior of the Vertex Merging option is to merge vertices between elements. Turning on Within Mesh? causes vertices within elements to be merged as well.

<MultiRes>.Boundary_Metric              BooleanClass default: false   --  boolean

When on, MultiRes preserves materials assigned to the selected model. The material boundaries defined by Material IDs are retained as long as possible, and are the last to be eliminated at low vertex counts. Default=off.

<MultiRes>.Maintain_Base_Vertices       BooleanClass default: false   --  boolean

When on, overrides the MultiRes optimization algorithms and preserves any vertices selected at the MultiRes Vertex sub-object level as "critical" ones. Use this feature to retain critical features of an object or character such as its fingers or claws, or other geometry that might become unrecognizable if reduced too severely.

To select vertices for use with this option, use the MultiRes Vertex sub-object level. To access this level, first go to the modifier stack display and click the plus-sign icon next to the MultiRes modifier. This opens up its hierarchy, which consists of the single Vertex sub-object level. Next, click the Vertex entry. The MultiRes vertices appear on the mesh as blue dots. You can select these using any standard interactive method, but you cannot transform them.

Important: After selecting MultiRes sub-object vertices with Maintain Base Vertices turned on, re-generate the mesh before changing the vertex resolution.

In the following illustration, the clown started out as a high-resolution mesh. All of the MultiRes vertices in the right half were selected, Maintain Base Vertices was turned on, and then the vertices were reduced.

<MultiRes>.Multiple_Normals_Per_Vertex  BooleanClass default: true   --  boolean

When on, lets MultiRes assign multiple normals for each vertex. By default, MultiRes generates a single normal per vertex.

If multiple normals are generated, they are applied as the vertex resolution is decreased and increased.

When the Multiple Normals Per Vertex option is checked, the MultiRes modifier generates normal updates when the geometry surrounding a vertex changes. You must specify a crease angle in degrees (0.0 - 180.0). The crease angle is the angle between the face normals. It is used to decide when a normal should be shared across an edge between two faces.

For example, in a plane defined as a mesh grid of 10 x 10 faces, any two adjacent faces have a crease angle of zero. In a cube, adjacent faces have a crease angle of 90 degrees. In general, crease angles approaching 0 yield smoother shading. Crease angles approaching 180 yield more visible corners.

<MultiRes>.Crease_Angle                 Float        default: 75.0   --  float

The value of the crease necessary in order to generate multiple normals. Available only when Multiple Normals Per Vertex is on.

The optimal crease angle depends on the model; set it interactively and check the viewport and rendered images for shading effects. While use of multiple normals per vertex enables more accurate shading, it can require more internal data.

<MultiRes>.Generate                     BooleanClass default: false   --  boolean

Applies the current MultiRes settings to the modified object. When you first apply MultiRes to an object, it must initialize its mesh-optimizing algorithm; you are prompted by the modifier to "Generate when ready".

Note: When working with complex meshes, the initial analysis may take a little while. During this time, MultiRes displays a special cursor to indicate it is working. Progress is indicated on this cursor by the movement of the gray area from top to bottom. To cancel this process, press ESC.

Example:

modPanel.addModToSelection(MultiRes())

$.modifiers[#MultiRes].Vertex_Count = 482

$.modifiers[#MultiRes].Vertex_Percentage = 100

$.modifiers[#MultiRes].Vertex_Percentage = 99

$.modifiers[#MultiRes].Vertex_Count = 476

$.modifiers[#MultiRes].Vertex_Percentage = 98.7552

$.modifiers[#MultiRes].Vertex_Merging = on

$.modifiers[#MultiRes].Threshold = 0.01

$.modifiers[#MultiRes].Merge_Within = on

$.modifiers[#MultiRes].Boundary_Metric = on

$.modifiers[#MultiRes].Maintain_Base_Vertices = on

$.modifiers[#MultiRes].Crease_Angle = 75.75

See also