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.

For a model with UVs, separate model components need a UV layout with the UVs separate 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. 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 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 you launch Mudbox. 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. Close any applications you do not need.

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 huge amounts of texture data

Mudbox lets you work with huge amounts of texture data by using the Gigatexel Engine to automatically handle tile loading, unloading, and proxying to reduce the amount of memory needed. Once the memory capacity of your graphics card and CPU are exceeded, however, Mudbox starts to write texture data to the hard disk, which can reduce the speed of interaction.

When dealing with particularly large scenes, you can get significant speed increases during this process by investing in more CPU memory and a solid-state hard drive (SSD). These hard drives have no moving parts and can therefore upload and download data much more quickly.

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 tiles to create very high resolution texture maps. Having many high resolution images loaded on the model impacts the GPU memory requirements.

To handle the GPU memory requirements, the Mudbox Gigatexel Engine works in the background to load and unload texture tiles that are currently in front of the camera.

If you prefer to turn off the Gigatexel Engine, you can still manually load and unload 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 and take longer to load compared to lower resolution stencils.

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

Using the Viewport Filters

Turning on Viewport Filters 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 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 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 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's using and displays it as the GPU Mem value on the Status Line. This value (displayed in megabytes) indicates only the GPU memory used by Mudbox, not by any other applications.