- Typical negative effects of unoptimized or poorly optimized scenes
- Who is this guide for?
- Check the polycount
- Find heavy models
- Remove unnecessary geometry
- Use instances instead of copies
- Optimize models
- Use 3ds Max optimizing modifiers
- Use pre-rendered planes with textures instead of models + shaders.
- When to collapse models.
I’ve seen countless projects that were poorly optimized for rendering and resulted in long render times, high RAM usage and unnecessary size on hard drive. My experience with working on personal projects and on hundreds of projects rendered on a render farm helped me identify certain themes and threads common to rendering. I decided to use my knowledge to create a series of tutorials on optimizing scenes in 3ds Max that will address those commonalities and will present you with techniques that aim to achieve faster and more stable rendering. GarageFarm.NET’s render wranglers and other team members will play an important role in making this initiative happen.
That being said, let’s start off with the 3ds Max rendering series.
Typical negative effects of unoptimized or poorly optimized scenes:
- High RAM usage may cause your scene to crash during the rendering or cause it to render too slow. That’s simply because the program needs to constantly write and read the temporary data from a hard drive. The hard drive is a 1000 times slower than RAM, even SSDs are much, much slower.
- Overblown scene settings such as polycount, quality, and sampling may lead to long render times that in turn may result in a missed deadline, or, when dealing with render farms, you can expect a higher cost.
- The more hard drive space your project requires (including both the scene and assets), the longer it will load to 3ds Max. When rendering locally that is probably not a big deal, but in network rendering, you will probably experience longer render times. Also, in case of commercial online render farms, longer loading time generally equals higher cost.
Who is this guide for?
This guide is for every 3D artist who has had an unpleasant experience with too high resource usage when rendering a project locally or on a network.
You will find useful optimization techniques for beginner and intermediate 3ds Max users. If you are an advanced user, you probably already know most of them, but still you might find some new information here. There is a saying, you don’t know what you don’t know.
The optimization methods listed below will be especially useful to animators as even a slight increase in render time is multiplied by the number of frames in your animation.
The aim of this guide is simple – reduce the render time and RAM usage – and gain more time for the creative side of the project, save time and money and have more satisfied clients.
PART 1. Geometry
The more geometry (polycount) in your scene, the bigger the scene file, the more RAM it needs in order to be rendered, and the longer the rendering takes.
To reduce the polycount in your scene you can try the following methods
1.1 Check the polycount
- Press “7” to activate the statistics display in active Viewport
- Or click on the ‘+’ in the upper left corner of a Viewport and choose “xView” and “Show Statistics”
You can turn more statistics options on and off by clicking on the upper-left corner in Viewport (“+”) → clicking “Configure Viewports” → “Statistics” panel.
- Total – Displays only the statistics for the entire scene.
- Selection – Displays only the statistics for the current selection.
- Total + Selection – Displays the statistics for the entire scene and current selection.
If you want to learn more about 3ds Max statistics and what they mean, check out Autodesk Help.
1.2 Find heavy models.
Open the window “Select by name” (press “h”) and add the “Faces” column to the menu.
You can do that by right clicking the “Name” bar and choosing the “Configure Columns” option. You’ll see a list of additional columns, one of them being “Faces”.
This column will sort all objects in the scene by number of polygons.
1.3 Remove unnecessary geometry.
Where to look:
- Delete all the geometry that is located outside of the view of the camera and won’t be visible in the final render.
- Delete all the geometry that is hidden inside, or covered by other objects.
- Delete all the hidden models and models on hidden layers, blueprints you used for modelling, and imported CAD drawings.
How to find hidden objects?
- In the “Select by Name” window click the “display all” icon.
- You can find hidden objects in your scene by adding the “Hidden” column, in the same way as “Faces” described in the chapter above. The hidden objects and objects on hidden layers will have the “Hidden”option ticked.
To find the models lost outside of your scene during importing or working on the project, you can right-click on any Viewport and choose the “unhide all” option, with the “Unhide objects on hidden layers” option selected. Then choose the “zoom extents” option in the bottom right corner of the max interface and press “ctrl + a” to select all the models in the scene. Lost models will become visible in the scene.
1.4 Use instances instead of copies.
In 3ds Max you can copy an object either as a copy or an instance (or reference which is a sort of an instance).
When you copy a mesh as a “copy”, 3ds Max creates another mesh that will be stored in your scene both on hard drive and RAM, which makes the polycount higher.
However, if you create an “instance”, 3ds Max will just store the information that a copy of a mesh is present in another place in the scene but keeping only the data of a single mesh in memory and in the scene file.
Thanks to using “instances” you can put a huge number of copied objects into the scene but they will use practically the same amount of RAM and have a similar filesize as a single object.
The only disadvantage of that method is that those meshes must be kept identical to the initial object.
1.5 Optimize models
Try to optimize models based on their distance to the camera or level of detail needed.
Adjust the level of detail of models to their visibility in the final render. For example, if you need cars in your visualisation but they are going to be far away, use simpler models or optimize them. A curb on a street can be beveled when it’s close to the camera, but those that are farther away can have sharp edges.
TIP: Don’t add Turbosmooth or Meshsmooth modifiers if it is not necessary, and keep the “Iterations” value as low as possible.
1.6 Use 3ds Max optimizing modifiers.
They can quickly reduce the number of polys in your model, but they might deform its shape.
It’s best to use them when the object is far away from the camera, or when it is a high poly object (like a model of a car collapsed after using Turbosmooth modifier).
Play around with the settings of modifiers to keep desired detail level, but reduce the number of polygons.
- You need additional polygons only to create more details in your model. Because of that, models with a dense mesh on flat surfaces are best candidates to apply this kind of optimization.
- Models with irregular shapes (like rocks) don’t need to retain their exact shape to look good, which also makes them good candidates to apply optimization modifier.
In order to reduce the scenes size and its resource usage, you will need to collapse the model with the optimizing modifier applied before the rendering, especially when you are going to render it via a network.
TIP: Always remember to save a copy of the scene before making changes to be able to revert to older settings in case something goes wrong.
Autodesk Optimizing Modifiers for 3ds Max
1.6.1 – Optimize Modifier
The Optimize Modifier lets you reduce the number of faces and vertices in an object. This simplifies the geometry and speeds up rendering while maintaining an acceptable quality of the image. A Before/After readout gives you the exact feedback on the reduction as you make each change.
More information about Optimize Modifier here
1.6.2 – MultiRes Modifier
The MultiRes Modifier reduces the memory overhead needed to render models by decreasing the number of vertices and polygons. MultiRes offers several advantages over the Optimize modifier including faster operation and the ability to specify the level of reduction as an exact percentage or vertex count.
More information about MultiRes Modifier here
1.6.3 – ProOptimizer Modifier
The ProOptimizer Modifier lets you select objects and interactively optimize them.
More information about ProOptimizer Modifier here
1.6.4 – Batch ProOptimizer Utility
The ProOptimizer feature is an optimization tool that helps you reduce the number of vertices (and also the number of faces) in an object while preserving the object’s appearance. Its options let you maintain material, mapping, and vertex color information in the optimized model.
More information about Batch ProOptimizer Utility here
1.7 Use pre-rendered planes with textures instead of models + shaders.
Sometimes you need to create an environment for your scene outside of your camera view but affecting your scene by appearing in reflections, casting shadows or illuminating it with indirect lighting (GI).
In that case, keep the models which create such environment simple or replace them with planes with pre-rendered textures added, and cut them out with opacity map if this is necessary.
You can also use that method for objects which are more distant from the camera but render too long, or are visible through materials like glass (for example several rows of glossy bottles on a shop shelf)
That method is especially efficient if you want to create a large amount of foliage visible in reflections or casting shadows on the scene.
If the opacity maps render too long, please check out the Textures guide (PART 2) to know how to set them up to render much faster.
A comparison of rendering a model with a reflection of the environment created with instanced models vs pre-rendered planes with opacity map.
A comparison of rendering far away objects as models vs pre-rendered planes with opacity map.
A comparison of rendering of multiple objects with refraction and blurry reflections rendered as models vs pre-rendered planes with opacity map.
1.8 When to collapse models.
The methods listed below can reduce your scene size on hard drive, so that your project will upload and open in 3ds Max faster, which is important in the case of rendering via a network or a render farm.
- Models with optimizing modifiers applied should be collapsed before rendering. It will reduce RAM usage, rendering time, and the size of the scene on a hard drive.
- Meshsmooth and Turbosmooth modifiers – Keep the models simple with modifiers applied to them, instead of collapsing them into editable poly or editable mesh. You will be able to correct the density of the mesh if it is too high and models will be saved on the hard drive in their simpler form, so your scene will weigh less.
A comparison of resource usage when rendering models with Meshsmooth modifier applied on them vs model after collapsing the stack to an Editable Poly. The models are copied as instances.
Editable splines: You can create dense 3d models using modifiers like Lathe, Sweep or the “rendering” option in the editable spline options. They will be saved in your project as smaller data in comparison to models collapsed to editable poly.
A comparison of resource utilization for editable spline with 3d options/modifiers applied (Lathe and Sweep) and after converting them to editable poly.
When it comes to geometry optimization, the rule is simple – the less, the better.
- Statistics information in Viewport and the “Faces” column in the “Select by name” window will help you find the geometry you need to optimize. Usually, most of the scene models are not heavy enough to invest time into optimizing them. Finding the heaviest and reducing the polycount should do the job.
- Using instances is one of the most efficient and easy ways of quickly reducing the polycount of a scene. Some render engines, like Vray or Mental Ray, have implemented tools (mr Proxy, VrayProxy) which combined with the “instances” option will allow you to optimize the scene even more. We will cover them in the next parts of this guide.
- Using optimization modifiers can be time-consuming at first, but after some time you will find the settings that work for you. If you work on a repetitive kind of projects like architectural visualisations, you will be able to create your own library of optimized models.
- Planes with pre-rendered textures are a good way to reduce the render time and resources demand. They work the best for reflections and objects which are far away from the camera, thus will be seen from a similar angle regardless of the camera location. In case of stills the time needed to create and render them might not be worth the effort, but when you render an animation with many frames, the planes can make a big difference.
- Editable splines are a 3ds Max tool that can help you create large geometry which will not affect your scene size, especially when you work on architectural visualizations. Their level of detail can also be modified depending on given needs.
I would strongly suggest to test all of the above techniques first to see how it affects your renders and to get a better hang of it. Then try to integrate them into your regular workflow. Applying these steps will save you a lot of time, hassle, and likely money in the long run.
This concludes the first part about geometry. Next part covers textures, so make sure you check it out!
This guide has been created by Michał Moś and edited with the help of the team at GarageFarm.NET. We derived most of the knowledge used in this guide from an extensive experience running a render farm for almost a decade.
Michał Moś ( aka ‘Andrew’ ) is part of GarageFarm.NET team specializing in 3d rendering topics from animation and troubleshooting to technical writing. He has worked for numerous design and architectural companies as a CG artist, designer, and instructor. Weapon of choice – 3ds Max, C4D, V-Ray and Octane. He loves drawing, creative writing, and tabletop RPGs.
Models used in the tests are from Marek Rybacki and Evermotion.
Links to Autodesk Knowledge Network used in the tutorial: