Memory and performance best practices
 
 
 

Mudbox takes advantage of your computer’s CPU speed, RAM, and graphics card memory to let you work with extremely high resolution polygonal models and produce high quality rendering and visual effects in real time.

The following sections describe areas where you can optimize memory usage to achieve optimal performance when using Mudbox.

CPU and RAM optimization

Task To optimize memory and performance:

Importing polygonal models from other 3D modeling and sculpting applications (CPU performance)

Mudbox has proprietary features for optimizing the display and interactive performance when working with high resolution models. These features work best when the imported model has a low polygon count.

If you want optimal system performance when importing a model from another sculpting application such as ZBrush, see Import a model from ZBrush.

In addition, the interactive performance (tumble, track, and dolly) degrades as the model becomes increasingly complex.

Working with multiple models (CPU performance)

Increasing the number of models (and materials) in the 3D View can degrade the overall interactive performance.

You can combine separate meshes into one model in your 3D modeling application prior to export as an .obj file. The combined model will be assigned one material in Mudbox.

Keep in mind that the separate model components should have their UVs laid out so they are separated in UV space and non-overlapping prior to being combined and exported to Mudbox.

Subdivision levels (RAM)

The number of subdivision levels on a model directly affects the number of polygon faces and how much RAM is required. Unnecessarily subdividing a model to a very high polygon count rapidly consumes RAM and limits your ability to add sculpt layers and perform other work on the model.

Sculpting on layers (RAM)

The number and relative complexity of sculpt layers, in relation to their associated subdivision level, has an impact on the amount of RAM required. A sculpt layer uses very little memory until sculpting gets applied to it. The more vertices modified on a sculpt layer, the more RAM required. A sculpt layer on a higher subdivision level (when many vertices are modified) requires more RAM than a comparable sculpt layer on a lower subdivision level because fewer vertices are impacted. For example, using the Flood operation on a sculpt layer affects all the vertex positions on the entire layer, so it would increase the amount of RAM required to store that information.

Increasing the size of a sculpt tool (CPU performance)

The size of a sculpt tool affects interactive performance especially when sculpting on dense models at higher subdivision levels. In these situations, a large sculpt tool may need to update the position of several hundred thousand polygons as you stroke.

A more efficient approach is to apply large sculpt strokes (to make coarse adjustments to the model) at lower subdivision levels where the interactive performance is improved.

Subdividing UV texture coordinates (RAM)

UVs are required when painting, extracting texture maps, or applying texture and displacement maps to a model. UVs increase the overall RAM requirements for a model and can be imported after your sculpting is complete using File > Import UV. By default, UVs are not subdivided when the model is subdivided. Mudbox only subdivides the UVs when the Mesh > Add New Subdivision Level > Subdivide UVs option is on. If you need to subdivide the UVs for a particular subdivision level, use the Page Up or Page Down keys to display that level and select Mesh > Recreate Level UVs.

Organizing stamps and stencils (RAM)

The stamp and stencil tray contents are loaded into RAM when Mudbox is launched. Reducing the number of stencils and stamps stored on the trays reduces RAM requirements.

Other software applications (RAM)

If any RAM-intensive software applications are running on your computer they can reduce the amount of available memory when running Mudbox. Exit any applications you do not currently require.

Graphics memory optimization

Mudbox takes advantage of the graphics processing unit of your computer's graphics card to produce high quality rendering and visual effects in real time.

In general, performance issues related to reduced graphics card (GPU) memory include slower display updates, display of black texture maps, and slower interactive performance.

Using all of the described graphics-related features simultaneously can overload even the most powerful computer graphics card. Consider the impact of the following items on GPU memory usage (in relation to your particular workflow) so you can obtain optimal performance from your computer hardware when using Mudbox.

Task To optimize memory and performance

Painting on layers

Mudbox has proprietary features for minimizing graphics card (GPU) memory requirements when displaying paint layers. The number of paint layers on a model and their image resolution and bit depth impacts the GPU memory requirements.

To reduce GPU memory requirements, create lower resolution paint layers with lower bit depths (when possible) and turn off the display of any paint layers that are not required. For more information, see Image bit depth and texture extraction.

Painting on multi-tiled models.

Mudbox lets you paint on models with multiple UV tiles letting you create very high resolution texture maps. Having many high resolution images loaded on the model impacts the GPU memory requirements.

To reduce GPU memory requirements, you can unload any textures associated with a UV tile that are not currently required in the 3D View by placing the cursor over the model and pressing the up arrow key. For more information, see Hide and show UV tiles on a model.

UV texture coordinates and UV tile boundaries

If a model is imported containing a UV set that crosses a UV tile boundary, it will result in poor interactive performance or worse affect the stability of the application. An error message will appear in the Log file indicating this situation when it occurs.

For best results remove or edit the UV set to correct the situation and import the mesh again.

Painting on high resolution models

You can reduce GPU memory usage by painting on a lower subdivision level.

Extract a normal map from the detailed higher subdivision level and apply it to a lower subdivision level to view the higher resolution detail as a texture map on the lower subdivision level and reduce GPU memory usage.

Stamps and stencils

A stamp or stencil requires additional GPU memory when it is loaded into a sculpt or paint tool. The resolution of the stamp or stencil image impacts the GPU memory requirements. That is, higher resolution stencils require more memory compared to lower resolution stencils and take longer to load.

Depending on your production requirements, consider reducing the image resolution and color bit depth when creating your own stamps and stencils. They will take up less memory in RAM when on the tray, and less GPU memory when being used. For more information, see Image bit depth and texture extraction.

Using the Viewport Filters

Turning on Viewport Filters (Cavity Ambient Occlusion, Depth of Field, or Tonemapper) requires the allocation of additional texture memory on the GPU, as these effects are updated with each display update of the 3D View.

Turn off the viewport filters when they are not required. For more information, see Apply visual effects.

Reflection (environment) maps

Images used for reflection maps can require large amounts of GPU memory depending on their resolution (height/width) and bit depth. Consider using the smallest environment maps possible in conjunction with any constraints for image quality.

Using Shadows

A shadow depth map is created for each directional light when its Cast Shadows option is turned on. The resolution of a shadow depth map affects the quality of the shadow and the amount of GPU memory required.

Reducing the Depth Map Resolution decreases the GPU memory requirements.

Consider turning off shadows for any lights that do not require them. For more information, see Directional light properties.

Using Image-based lights

Image-based lights increase the amount of GPU memory required as a texture map image is referenced for the lighting environment.

Minimizing the resolution of high dynamic range images (HDRI) that are used for Image-based lighting reduces the GPU memory requirements in these situations. Directional and point lights do not consume significant amounts of GPU memory.

Materials

Increasing the number of materials in the scene (and associated texture maps on those materials) increases the GPU memory demands.

Limit the number of materials in the scene when possible and consider using smaller resolution images for texture maps with lower bit depths on your materials.

Keeping track of GPU memory usage

Mudbox tracks the amount of GPU memory it is currently using and displays it on the Status Line using the GPU Mem value. This value (displayed in megabytes) indicates only the GPU memory used by Mudbox and not any other running applications.