March 23, 2022 Maddie Quach

Render quality and speed control in Houdini with Mantra renderer

Mantra, the built-in renderer of Houdini, is an advanced rendering system that has some really great features. Especially, Mantra is a standalone renderer that gets its data directly from Houdini. Specifically, it is a multi-paradigm renderer, implementing scanline, raytracing, and physically-based rendering. Because Mantra Renderer has deep integration with Houdini, such as the highly efficient rendering of packed primitives and volumes, this render engine becomes a good choice for Houdini artists.

General quality controls Mantra Renderer

The parameters on the mantra node’s Rendering ▸ Sampling sub-tab are the most important for increasing quality (or decreasing quality to speed up rendering).

  • The Rendering ▸ Sampling ▸ Pixel samples property is the global baseline quality control for mantra rendering. This is the minimum number of rays fired to shade each pixel. Increasing this, for example from 3×3 to 5×5, will increase the overall quality of the render.

    (This property has two numbers – 3×3 instead of just 3 – for mostly historical reasons. Just increase both numbers at the same time to increase quality.)

    The practical upper limit for pixel samples is probably 12×12, for surfaces with displacements, very fine details, motion blur and depth of field. Otherwise, 5×5 or 6×6 is usually sufficient.

  • Set pixel samples just high enough to resolve small details in the image – this represents the “fixed” image-wide rendering cost. Then, turn on Ray variance anti-aliasing.

    This makes mantra loop, firing extra rays to get extra shading samples if necessary until the variance is less than or equal to the allowed noise level, or until the Max ray samples. Turn up Max ray samples for more rays in problem areas.

    You can export the direct and indirect ray samples (the number of times this loop ran for a given pixel) as an extra image plane. This lets you identify slow areas of the image.

  • You can add sampling properties to an object to get separate per-object pixel settings. This lets you specify very high ray samples for a single “hero” or problematic object instead of increasing pixel samples globally. Note that the pixel samples cannot be changed on a per-object basis – only the ray samples.

  • Rendering ▸ Dicing ▸ Shading quality multiplier controls the amount of refinement. In PBR and raytracing, this can increase fidelity of very fine geometry detail. In micropolygon rendering, this increases shading resolution.

  • You can increase the limits on the mantra node’s Rendering ▸ Limits tab to increase the maximum number of rays shaders can send. This will usually increase the shading quality.

    To get irradiance (let light bounce into dark areas), add an Indirect light and turn up the Diffuse limit. This allows more diffuse bounces, increasing the realism. However setting the diffuse limit greater than 4 generally has diminishing returns.

Decreasing PBR noise

While PBR rendering gives you shadows, reflections, irradiance, and so on “for free”, the drawback of its stochastic nature is noise. Even uniformly colored surfaces will render with subtle color differences between pixels.

  • Avoid judging PBR noise based on low-resolution test renders. The same amount of noise that looks bad at 640×400 will probably not be noticeable at 2K. Note that the default Noise level is 0.05, while analog film grain probably corresponds to a noise level of approximately 0.08.

  • There are two main controls on the mantra node for decreasing noise in PBR renders. Pixel samples and Noise level (on the Rendering ▸ Sampling tab).

  • As explained above, Pixel samples is a global control. Increasing it will increase the number of all kinds of samples in the renderer. Increasing it will decrease noise, but you should use it to set the accuracy (resolving geometry), and then use Noise level to specifically control noise.

  • Decreasing Noise level will… decrease the noise level. It forces mantra to keep sampling (sending out rays) until the variance is less than this value, up to Max ray samples times.

This tends to increase render time in “problem areas” rather than globally. It helps in dark areas such as contact shadows that can have a lot of noise. However, decreasing noise level makes the render much slower. This setting is about how much noise you can live with. If you’re doing “test” renders, you can jack it up. If you’re rendering at very high resolution, the noise will be lost anyway (like film grain). If you’re rendering overnight on a render farm, you can pay the brute force cost for a low noise level.

  • If you have bright speckles in PBR renders, try decreasing the Color limit on the Rendering ▸ Limits sub-tab. This decreases the maximum amount of light allowed in the system.

  • Remember that you can add properties to objects (and even primitives) to give them customized values for these properties. For example, you can set a lower noise level for an important object.

Managing memory

Use procedural shaders such as Mantra Renderer Delayed Load and Alembic Geometry to replace proxy geometry with more complex geometry at render time. Render full-resolution geometry in mantra archive format or Alembic format to allow mantra to demand-load small parts of the geometry file at a time.

  • When rendering on computers with different amounts of RAM (for example, a mix of new and older computers), you can set Rendering ▸ Render ▸ Cache limit to a percentage of physical memory instead of fixed size.

  • Micropolygon rendering: the Rendering ▸ Render ▸ Tile size property is by default low to prevent the renderer from using large amounts of memory. Houdini renders a tile at a time and throws away many per-tile structures between tiles to reclaim memory. So, if you have a lot of memory you can increase tile size to use more memory to render faster. (On a machine with tons of memory, you could calculate the tile size to make the number of tiles equal to the number of rendering threads for ideal performance.) This has little effect on ray tracing or PBR.

Optimization tips

By default, Houdini uses all processors to speed up rendering time. If you do not want to use all processors you can turn off the Use Max Processors checkbox on the Render sub-tab of the Rendering tab of the render node. Once this option is turned off, you can set the Thread Count to specify how many processors to use.

Reducing the Volume Step Rate (on the Rendering ▸ Sampling sub-tab mantra render node) speeds up rendering but decreases mantra’s ability to resolve fine detail in volumes.

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 Dicing sub-tab of the Rendering 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.

With micropolygon rendering, 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 fewer 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 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.

For lights that only affect part of the rendered scene, it is possible to speed up renders by enabling the Active Radius parameter on the light object and setting it to the maximum radius of effect for that light. When shaders are executed outside the active radius, they will ignore that light source entirely – improving rendering performance. This option is particularly useful for scenes with many small light sources, such as a scene with many outdoor street lights.

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 Limits sub-tab of the Rendering 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.

Mantra specifically optimizes the rendering performance (both ray tracing and micropolygon rendering) for shaders that it knows are fully opaque. To improve rendering performance, ensure that opaque shaders either assign a constant {1,1,1} to the opacity (Of) VEX variable or that any shader/material parameters that would make the shader transparent are disabled.

Use velocity motion blur instead of deformation blur to reduce IFD generation time and size.


Hopefully the above information will help you better control the render quality and speeed and have a better experience when working with Mantra Renderer and Houdini.

iRender provides Powerful Cloud Rendering service for Houdini – a Professional GPU-Acceleration Cloud Rendering for Houdini projects with Redshift, Octane, V-Ray (RT), Mantra, Arnold, and so on. At iRender, we have developed multiple RTX 3090 workstations specifically optimized and configured for GPU rendering workflows, from single- GPU 1x RTX 3090 to Multi-GPU 2/4/6/8 x RTX 3090, you can choose one server that is suitable for your demand and your software to get started. You are guaranteed to experience maximum performance for your budget. Users will remotely connect to our server, install their software only one time and easily do any intensive tasks like using their local computers. We offer clients the powerful processor Intel Xeon W-2245 @ 3.90GHz / AMD Ryzen Threadripper Pro 3955WX @ 3.90GHz and up to 1 TB SSD to load your scene quickly.

Register an account today for FREE TESTING COUPON to experience our service. Or contact us via WhatsApp: (+84) 912 785 500 for advice and support.


Thank you & Happy Rendering!


Reference source:

Related Posts

, , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,

Maddie Quach

Hi everyone. Being an Customer Support from iRender, I always hope to share new things with 3D artists, data scientists from all over the world and learn from them as well.


Autodesk Maya
Autodesk 3DS Max
Cinema 4D
Daz Studio
Nvidia Iray
Unreal Engine
And many more…


iRender Core – GPU Render Engine
GPU HUB. – Decentralized GPU Computing
Chip Render Farm


Hotline: (+84) 912-785-500
Skype: iRender Support
Email: [email protected]
Address 1: 68 Circular Road #02-01, 049422, Singapore.
Address 2: No.22 Thanh Cong Street, Hanoi, Vietnam.

[email protected]