Home Rendering 

Improving Render Time for Volume Rendering

There are several ways you can improve your render time with very little impact to the render quality.

Volume Step Size

You can alter the Volume Step Size on the Sampling sub-tab of the Properties tab of the mantra output node. If your volume object is very large (larger than 1 Houdini unit), you can safely increase the Volume Step Size without greatly affecting the quality.

Pixel Samples

You can alter the Pixel Samples on the Sampling sub-tab of the Properties tab of the mantra output node. The default value is 3×3, which provides decent quality. Decreasing this value to 1×1 will definitely increase your render time, but will also introduce visible noise to the final image. If you have a great deal of motion blur and/or depth of field, you can get away with turning down the samples to 2×2.

Shading Quality

You can control the shading quality at the object level for each object on the Dicing sub-tab of the Render tab. This parameter controls the size of the micropolygons which inherently controls the number of times the shaders are called.

Increasing this value creates more micropolygons and therefore more shader cells. Decreasing this value will reduce the memory consumed as well as render times, but is not nearly as drastic as decreasing the volume step size.

Motion Factor, Depth of Field, and Motion Blur

If you are using either depth of field and/or motion blur you can try altering the Motion Factor value, which is located on the Sampling sub-tab of the Properties tab of the mantra output node. This parameter controls the shading quality dynamically. Depending on the level of depth of field and/or motion blur, you can decrease the shading quality which will use less memory and result in faster render time.

Control the Number of Lights

Since each shader call will loop through all the lights illuminating the current mircopolygon in the volume, limiting the number of lights to look up will proportionally decrease render times.

Additionally, having less lights generating and using deep shadow maps will also speed up render times. Deep shadows give you depth, so you may only want one or two lights with this option turned on, and the rest of the lights to not use shadows.

Using ambient occlusion (the Environment Light from the shelf) with your volume objects will slow down your volume rendering because each shaded micropolygon will cause an awful lot of rays to be generated due to the raytraced ambient occlusion. Manually controlling lights will give you more control and be less costly.

Opacity Limit

When you are rendering geometry with a certain amount of transparency, you can use the opacity limit to stop the current ray if the opacity threshold is met. The Opacity Limit parameter is located on the Render sub-tab of the Properties tab of the mantra output node.

If used too aggressively, you will see flickering and strange banding in your volume over a sequence of renders if the camera is moving or the smoke is evolving. This is the varying opacity thresholds in the volume, which is most evident if your volumes are more wispy and transparent.

By altering the Opacity Limit, you will only get a 1-5% decrease in render time. The default value is already pretty aggressive, so be careful to avoid adding unwanted artifacts.