Improving Scene Performance

Designing a 3D scene is balancing two conflicting needs: the need for an attractive, realistic appearance with the need for fast performance. Keep the following techniques in mind to make your scene perform at its best.

Watch for notes in the browser console.

When your scene runs in the DEV and TEST environments, informative messages may appear in the web browser console log. These are the same warnings you see at the top of the scene designer when you develop the scene. If one user is having problems that others are not, the console log on their web browser may give you more information. Learn more about using the web browser console to debug problems.

Prevent the shimmer of z-fighting.

If two overlapping meshes show a distracting shimmer, then set the Z-Order of your materials. Learn more about z-order.

Reduce the polygon count.

The performance statistics infobox can show you the count of polygons in your scene. Fewer is faster. It shows the number of polygons for the mesh you have selected: click the scene node at the top of the explorer to see a total count.

Before importing, simplify source models.

Often the meshes in your 3D scene are imported from other sources of geometry, such as CAD models your engineers design or third-party meshes you purchase. Simpler source models result in simpler meshes. Try simplifying your models as much as possible before importing them into the scene through these techniques:

  1. Use automated features in your CAD system or third-party tools to simplify the geometry before you export it for use in the scene.

  2. Manually remove unnecessary components which aren't critical to understanding your product. Bolts, screws, holes, and other small components can add to the polygon count without adding meaning.

  3. Round edges and curved surfaces require many more polygons than squared, flat surfaces. Consdider any round edges: are they an important part of the design of the object, or are they simply small details that don't noticeably improve the realism of the mesh? Replace unimportant fillets with sharper edges like chamfers.

Reveal Polygon “hotspots” with wireframe render mode.

Available as a render mode in the top menubar, wireframe mode shows all the individual polygons that make up each mesh. In this mode, look for dense white areas, which indicate meshes with a higher polygon count. Consider simplifying those regions, as they are likely to have the biggest impact on performance. 

When importing, test different import settings.

Try importing a simplified CAD model a number of times, with different import settings. Then show the different imports side-by-side in the scene, and decide as a group which import is the best balance of detail and simplicity. Note those import settings, in case you need to import that CAD model again in the future.

Simplify complex meshes with a normal texture or displacement map feature.

For example, consider the model below of a metal screw, which has smooth, knurled, and threaded surfaces. Instead of using thousands of polygons to create the two textured surfaces, try using materials with a normal texture or a mesh with a displacement map feature to simulate the complex surface.

Use Features to represent different variants of a component, instead of separate meshes.

  1. Rather than having two different meshes for two similar items that vary only in size, use one mesh with a move vertices feature applied. Then use Snap rules to resize that one mesh into all the variants you need. You can choose which specific vertices are transformed, which prevents important features from being distorted as the overall mesh is resized.

  2. Apply the UV mapping feature as the final feature in the stack if you have textures applied that you don't want to stretch.

  3. Use either the linear or circular pattern feature to show multiples of the same item (such as fenceposts in a fence, or links in a chain).

Collapse unused or static features.

If you have features on meshes in a feature stack, ensure they are being used or are there for some future feature of your product. If a feature is unused, then collapse them to prevent them from having to be computed.

Start with all meshes hidden.

A common technique with complex scenes is to turn off the visibility of most or all mesh nodes in the editor.

  1. This prevents the geometry from loading when the scene opens.
  2. Use scene rules to control visibility.  Set the visibility to true only on those items that need to be visible for this configuration.

 

Reduce the number and size of images/textures.

  1. Keep the number of images in the scene to a minimum.
  2. Avoid complex texture maps where possible, or simplify them.
  3. Avoid large texture or image files by watching your resolution and file format.
    1. Resolution: 1024x1024 maps work well in most cases. There's often no need to go larger. Remember that the UV Map Feature can resize and rotate an image or texture onto a mesh.
    2. File format: try using .jpg instead of .png files. You should only use .png files as a texture if the transparency they offer is required in your texture. Png files are usually much larger than .jpg, which slows down scene load and render times. Here, for example, is the same image stored in both formats, with the JPG loading 5 times faster.

Reduce the number of items in the explorer node tree. 

Simpler trees (or "scene graphs") are processed more quickly by Snap rules.

  • Use groups to organize your meshes.
  • Review and remove unnecessary mesh groups if they are empty.

Use the designer tools that help you create quality work.

Use one of the orthogonal perspectives when selecting vertices; it helps select just the vertices you're looking for. Using only the isometric view can lead to accidentally selecting unwanted vertices behind the ones you want. Learn more about controlling your views in the 3D Scene Toolbar.

Limit post-processing effects in the scene.

The scene node properties allow you to activate powerful visual effects, but just because these effects exist doesn’t mean you must use them in any particular scene. Carefully weigh the benefit of the visual effect to the slowdown in your FPS (frames per second) shown in the performance statistics infobox.

Limit the use of shadows.

We suggest you review your scene node properties:

  • In the "Post in Viewer" section, turn off all options listed. This is the default.
  • In the "Texture Sampling Mode" option, select "Nearest". This is the fastest. Then move to other modes only when necessary.

When creating meshes, limit the use of cast shadows or receive shadows. By default, these are off. Use the effects only when they increase understanding of your product. If you do turn shadows on, only cast shadows from certain lights. And flag only certain meshes as casting or receiving shadows.


Was this article helpful?