Render Optimization
More actions
Render optimizations are methods and techniques that aim to improve render times, render quality, or sometimes a combination of both. These include modifying the behavior of the engine or modifying the scene itself.
Optimizing Scenes
In many cases, optimizing the actual scene itself can improve render times or quality. Some of these include:
- Reducing geometry, or optimizing topology (e.g. using quads instead of n-gons)
- Reducing texture sizes (e.g. using 2K textures instead of 4K)
- Adequate routes for light paths (e.g. large gaps)
- Avoiding complex materials or adjusting materials to behave differently (e.g. archviz glass)
- Reducing resolution of the final render
Optimizing Engine Behavior
Often times optimizing an engine's behavior can also allow for reducing render times or scene quality. Some examples include:
- Limiting light bounces, or even approximating lighting through alternate means
- Adjusting sample count for ray tracing engines, often in conjunction with denoising algorithms
- Adjusting shadow resolution for rasterized engines
Software/Engine Specific Recommendations
The following are recommendations for specific programs or render engines. Depending on the scene, these may or may not need to be adjusted.
Cycles (Blender)
Although Cycles is one of the faster path tracing engines, there's some options that can be adjusted for performance.
Sampling
Beyond adjusting the sample count, there are alternate settings in Cycles specifically related to sampling. In particular, adjusting adaptive sampling settings to kick in earlier on can reduce render times, at the cost of more noise.[1] Setting the noise threshold to instead of may be a good compromise of quality and render times.
Another sampling related setting in Cycles is light tree, which reduces noise in scenes with a heavy amount of lights[2], but may cause more noise in scenes with fewer lights.
Light Paths
Adjusting light path settings can also be another source of performance and/or quality improvement. This can be in the form of adjusting light bounces, volumetric stepping, or clamping bright pixels.
By default, Cycles sets its max light bounces to , which may be excessive in many cases. Lowering to often creates little to no difference, while reducing render times.
Some scenes may allow for reducing max light bounces further down to or even . However, it should be noted that adjustments the range of to typically introduce larger changes to the scene than higher ranges.[3]
-
8 light bounces
-
4 light bounces
-
3 light bounces
-
2 light bounces
-
1 light bounce
-
0 bounces (direct light only, no global illumination)
In addition to max light bounces, there is also stepping rate and max steps. Stepping rate defines how many "steps" is performed in a volumetric object, where lower values allow for more detail, at the cost of render time, and max steps defines how many steps Cycles will perform for volumes before giving up[4]. Depending on the scene, the default value of may be excessively low, and increasing the rate may allow for performance improvements. In addition, decreasing max steps may also improve render times, at the cost of detail.
Like many path tracers, Cycles includes options to clamp the brightness of pixels caused by both direct and indirect bounces. When set to , no clamping is done[5]. While clamping direct lighting is usually not necessary, clamping indirect lighting may reduce the amount of fireflies created when rendering. However, clamping indirect can often reduce the brightness of highlights on reflective objects.
Cycles also includes options to disable caustics.[6] However, disabling these will drastically change lighting if a scene contains many reflective objects, and should be considered a last resort in most cases.[7]
Fast GI approximation can also improve render times[8], though it can also drastically change how a scene looks.
-
Without Fast GI
-
Fast GI approximation after 1 light bounce
-
Fast GI approximation after 2 light bounces
Shaders
In Cycles, certain shaders often create additional noise in a given scene. For example, a glass shader may create additional noise due to the calculation of caustics, leading some to create workarounds (such as archviz glass).
Like glass, the emission shader is often linked to increased noise.
Alpha transparency may introduce slow down when rendering as Cycles has to execute an object's shader trace a ray when hitting a transparent portion.[9] In cases where many objects with alpha transparency overlap, such as leaves or grass, it may be beneficial to remove the transparent portions. [10]
Volumetric shaders may introduce additional noise and render time.[11] In cases where volumetric shaders are used for god-rays, 2D emissive plans can make a suitable substitute.
Lights
Smaller lights (and by extension smaller beam spread values for area lights) can make it harder for samples to converge in a scene, leading to additional noise.
For interior scenes, light portals can also be used on near windows to reduce noise from environment light.[12][13]
Objects
To reduce memory usage, using object instancing and/or duplicating objects with shared data may reduce memory usage when rendering.[14] This mainly benefits scenes with multiple objects that look the same/similar, such as trees in a forest, where each object doesn't have many unique features.
Adaptive subdivision and/or LOD may also introduce memory savings for terrain.[15]
- ↑ https://docs.blender.org/manual/en/4.4/render/cycles/render_settings/sampling.html#adaptive-sampling
- ↑ https://docs.blender.org/manual/en/4.4/render/cycles/render_settings/sampling.html#lights
- ↑ Blender Guru: 18 Ways to Speed Up Cycles Rendering - Reduce Light Bounces
- ↑ https://docs.blender.org/manual/en/4.4/render/cycles/render_settings/volumes.html
- ↑ https://docs.blender.org/manual/en/4.4/render/cycles/render_settings/light_paths.html#clamping
- ↑ https://docs.blender.org/manual/en/4.4/render/cycles/render_settings/light_paths.html#caustics
- ↑ Blender Guru: 18 Ways to Speed Up Cycles Rendering - Clamp it
- ↑ https://docs.blender.org/manual/en/4.4/render/cycles/render_settings/light_paths.html#fast-gi-approximation
- ↑ https://docs.blender.org/manual/en/latest/render/cycles/render_settings/light_paths.html#transparency
- ↑ Blender Guru: 18 Ways to Speed Up Cycles Rendering - Remove Alpha Transparency
- ↑ Blender Guru: 18 Ways to Speed Up Cycles Rendering - Remove Volumetrics
- ↑ https://docs.blender.org/manual/en/latest/render/cycles/light_settings.html#render-cycles-lights-area-portals
- ↑ Blender Guru: 18 Ways to Speed Up Cycles Rendering - Use Portals
- ↑ Blender Guru: 18 Ways to Speed Up Cycles Rendering - Object Instancing
- ↑ Blender Guru: 18 Ways to Speed Up Cycles Rendering - Adaptive Subdivision