MAXScript Language Reference > 3ds Max Objects > Modifier : MAXWrapper and SpacewarpModifier : MAXWrapper > Modifier and SpacewarpModifier Types > Modifiers > Mesh Editing >

# MultiRes : Modifier

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

Value > MAXWrapper > Modifier > MultiRes

| Modifier Classes - Quick Navigation

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 Maxbut 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.

Constructors

    MultiRes...
    MrmMod...

Properties

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

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>.vertexPercent Float default: 100.0 -- animatable; float; Vertex_Percentage

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>.mergeVertex Boolean default: false -- boolean; Vertex_Merging

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>.mergeThreshold Float default: 0.0 -- float; Threshold

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>.mergeWithinMesh Boolean default: false -- boolean; Merge_Within

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>.BoundaryMetric Boolean default: false -- boolean; Boundary_Metric

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>.baseVertices Boolean default: false -- boolean; Maintain_Base_Vertices

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>.multiVertNorm Boolean default: true -- boolean; Multiple_Normals_Per_Vertex

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 acrease anglein 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>.creaseAngle Float default: 75.0 -- float; Crease_Angle

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>.reqGenerate Boolean default: false -- boolean; Generate

Setting this property to true (or even false) will generate the optimization data.

Note

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". Without the optimization data generated, you cannot change the mesh resolution.

When working with complex meshes, the initial analysis may take a little while. During this time, MultiRes displays the hourglass cursor to indicate it is working. To cancel this process, press Esc.

    <MultiRes>.resetParams Boolean default: false -- boolean; Reset

Setting this property to true (or false) will reset the User Interface to default values.

EXAMPLE
    modPanel.addModToSelection(MultiRes())
    $.modifiers[#MultiRes].vertexCount = 482
    $.modifiers[#MultiRes].vertexPercent = 100
    $.modifiers[#MultiRes].vertexPercent = 99
    $.modifiers[#MultiRes].vertexCount = 476
    $.modifiers[#MultiRes].vertexPercent = 98.7552
    $.modifiers[#MultiRes].mergeVertex = on
    $.modifiers[#MultiRes].mergeThreshold = 0.01
    $.modifiers[#MultiRes].mergeWithinMesh = on
    $.modifiers[#MultiRes].boundaryMetric = on
    $.modifiers[#MultiRes].baseVertices = on
    $.modifiers[#MultiRes].creaseAngle = 75.75

#### See Also

- Modifier Common Properties, Operators, and Methods

- MAXWrapper Common Properties, Operators, and Methods

- Value Common Properties, Operators, and Methods