A guide to optimizing your scene
The creative team at GarageFarm.NET has put together this guide on techniques for optimizing your work in 3ds Max
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 you still might find something new here. There is a saying, you don't know what you don't know!
Who will benefit from this guide? This guide is for every 3D artist who has had an unpleasant experience with high resource usage when rendering a project locally or on a network.
Results of unoptimized scene:
- High RAM usage may cause your scene to crash during the rendering or cause it to render slowly. 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 take 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 render farms, longer loading time generally equals higher cost.
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.
Check the polycount
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: 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 (+ > Configure Viewports > Statistics).
- 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 the statistics and what they mean, check out Autodesk help.
Find heavy models
Open the window Select by name (H) and add the Faces column to the menu. You can do this 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.
Remove unnecessary geometry
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 modeling, 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 previous step. 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 3ds Max interface and press Ctrl+A to select all the models in the scene, lost models will become visible in the scene.
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 virtually the same amount of RAM and have a similar file size as a single object. The only disadvantage of this method is that those meshes must be kept identical to the initial object.
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 visualization 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. Don't add TurboSmooth or MeshSmooth modifiers if it is not necessary, and keep the Iterations value as low as possible.
Using 3ds Max optimizing modifiers
Using 3ds Max optimizing modifiers can quickly reduce the number of polygons 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. 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.
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. For more information about this modifier head to the Autodesk help pages.
The MultiRes Modifier reduces the memory overhead needed to render models by decreasing the number of vertices and polygons. The MultiRes modifier 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. Check out the Autodesk help pages.
ProOptimizer Modifier and batch ProOptimizer utility
The ProOptimizer Modifier lets you select objects and interactively optimize them. 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.
Pre-rendered planes with textures
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.
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.
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.
When it comes to geometry optimization, the rule is simple – less is more. 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 V-Ray 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 visualizations, 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.
It is good to apply all of those optimization techniques as a part of your workflow as you work on your scene rather than attempting to optimize it when the scene is already finished and the final render times turn out to be too high. In the long run, such workflow can save you lots of time and money.
Please consider all those methods as suggestions only. Their effect may vary depending on your scene setup, plugins and the render engine you use. It is best to run a test of several frames of optimized scene to check the effect before the final render.
Have a look at more of Michal's work on his carbonmade pages
Top 10 plugins for ZBrush
Submit your 3ds Max projects to r gallery for your chance to win a resin model
Check out GarageFarm.NET's blog for more tutorials