This page provides some useful tips for rendering volumetric effects.

Volumetric vs Volumetric Geometry mode when rendering on the CPU


The Volumetric Geometry mode is provided as an option for the following reasons:

  1. Generation of Render Elements for compositing - for a complete list of the supported Render Elements in both Volumetric and Volumetric Geometry mode, please check the V-Ray Render Elements Support page.
  2. Blending of multiple atmospheric effects in the scene - e.g. you use an Aerial Perspective and a Phoenix Simulation - if the mode is set to Volumetric, one would be entirely behind the other in the rendered image.

Limitations:

  1. The Volumetric Geometry mode does not work with Probabilistic Volumetrics.
  2. The Volumetric Geometry mode tends to be slower to render. Ideally, you should work in Volumetric mode all the time and switch to Volumetric Geometry only when generating the Render Element passes.
  3. The Approximate and Approximate+Shadows Scattering options under Volumetric Render Settings → Smoke Color are not supported in Volumetric Geometry mode. It would default to Disabled scattering.
  4. You may need to increase the V-Ray Settings → Global Switches → Advanced toggle → Max.Transparency Levels option which will slow-down rendering. When rendering in Volumetric Geometry mode, procedural geometry made up from multiple transparent layers is generated at render-time. Think of it as sprites used in video games - a sequence of slices facing the camera.
  5. The default 3ds Max Scanline renderer is not supported.

 When rendering with V-Ray GPU, the Render Mode does not matter - Render Elements are generated and the rendering speed is the same in both the Volumetric and Volumetric Geometry modes.


AUR vs VDB Cache Format


VDBs render slower than AUR files.

The VDB layout which makes it possible to render huge sparse-grid volumes makes rendering everyday volumes slower than the dense-grid AUR format.

If you can choose between AUR and VDB, go with AUR when possible. The rendering speed-up with AUR files can go up to 2x depending on the complexity of the setup.

Furthermore, resimulation results when using VDBs as a base usually differ from the results when using AUR files due to differences in the default compression methods.

However, sparse VDB caches would help reduce the RAM usage, so they are an alternative if you don't have enough memory for rendering an AUR dense cache.


Resimulation stored as AUR , Render TIme: 3m 45 seconds.


Resimulation stored as VDB, Render TIme: 6m 28 seconds.


Core Volumetric Shader Settings


Rendering rollout → Step %

The Step % parameter is the main sampling control when rendering volumetric effects. The higher you can set the Step %, the faster the rendering will go. Eventually artifacts will start to appear for very high values, so that is where you must stop increasing the Step %.

The Step % option specifies the ray marching step of the camera rays as a percentage of the cell size. As the renderer traces rays through the simulator, this value controls how often to get information from the grid. If the Step % is more than 100, some cells will be skipped and artifacts may appear. A lower percentage might be necessary so that fine details are not lost when custom changes are made to the Opacity curves for Fire / Smoke.


Step %: 90, Render Time: 4m 58seconds.


Step %: 200, Render Time: 2m 01 seconds.


Step %: 300 , Render Time: 1m 49 seconds.




Rendering rollout → Shadow Step %

The Shadow Step % is similar to the Step % in a sense that it is responsible for the sampling quality of the volume but for the shadows cast by the volume over itself and the surrounding objects only. The higher you can set the Shadow Step %, the faster the rendering will go. Eventually the shadows will become washed out for very high values, so that is where you must stop increasing the Shadow Step %.


Step %: 200 , Shadow Step %: 200, Render Time: 2m 02 seconds.


Step %: 200 , Shadow Step %: 400 , Render Time: 1m 38 seconds.


Step %: 200 , Shadow Step %: 800, Render Time: 1m 36 seconds.




Rendering rollout → Sampler Type

The Linear sampler will always render 20-30% faster than the Spherical. You should use Spherical only in case you are rendering a low-resolution simulation that shows some grid artifacts and steps, especially when looking along one of the grid axes.






Volumetric Options → Smoke Color → Volume Light Cache | Light Cache Speedup

In general, for lower-resolution simulations, the Phoenix Light Cache will significantly speed up the rendering. As the resolution increases, the benefit from using the Phoenix Light Cache diminishes. If Volume Light Cache is disabled, try enabling it to check if that will speed-up the rendering. You can reduce the render times significantly by increasing the Light Cache Speedup setting. Increasing it from 0.9 to 0.99 to 0.999 should yield a big difference in render speed.

The Light Cache Speedup should be increased until artifacts start appearing in the rendered image. Grid Light Cache artifacts will look like voxel-sized dark and bright spots. They would also flicker in animation. Grid artifacts start appearing when a voxel does not get to cast enough shadow rays – this is usually related to the lighting setup – e.g. the illumination is too dim, there are too many grids in the scene, etc. If you see these artifacts, then your Light Cache Speedup is too high and you have to decrease it. If decreasing it to zero still does not help, disable the Light Cache.

Disable the Volume Light Cache option if:

  1. Reducing the Light Cache Speedup option to zero does not help resolve artifacts in the smoke. If you see bright and dark voxels, this means the light cache speedup is too high. If you see pixel sized noise, then it's the sampling - you should adjust the V-Ray settings accordingly (e.g. increasing the Max Subdivs for the Bucket Sampler).
  2. You are rendering an animation and you notice flickering which will not go away after reducing the Light Cache Speedup.
  3. You are using Progressive rendering.
  4. There are multiple grids in the scene - for a large number of grids in the same scene, disabling the Phoenix Light Cache might speed things up, as opposed to a single grid where it's best to keep it enabled.


Volume Light Cache: disabled , Render Time: 11m 34s.


Volume Light Cache: enabled , Speed-up: 0.9 , Render Time: 32m 42s.


Volume Light Cache: enabled , Speed-up: 0.99 , Render Time: 7m 17s.


Volume Light Cache: enabled , Speed-up: 0.999 , Render Time: 1m 49s.

When rendering with V-Ray GPU, the Volume Light Cache option is ignored entirely - the Phoenix Light Cache is a CPU-only 'hack' used to speed up CPU rendering.




V-Ray Sampling Artifacts:

Pixel-sized artifacts caused by low V-Ray Sampling settings could manifest in the rendered image, especially if using Smoke Color → Scattering → Ray-Traced (GI).

To resolve these, increase the Max Subdivs in the V-Ray Settings window.


Max Subdivs: 2 , Render Time: 33 seconds


Max Subdivs: 5 , Render Time: 116 seconds


Max Subdivs: 9 , Render Time: 177 seconds




Volumetric Options → Fire / Smoke Color / Smoke Opacity rollouts

If using any textures for modulating / replacing the Fire, Smoke Color or Smoke Opacity, disable them to check how the rendering speed compares. Some textures and complex texture networks can be slow to evaluate and render.


Smoke Color → Modulate by Texture: enabled , Texture: Gradient Ramp , Render Time: 49 seconds.


Smoke Color → Modulate By Texture: disabled , Render Time: 40 seconds.




Volumetric Options → Smoke Opacity → Optimize Big Volumetric Grids

When enabled, an optimization pre-pass over each grid in the scene will be run to speed up the rendering process.

It's best to keep this option enabled unless:

  1. You are low on RAM - this option requires additional memory during rendering, so you could disable it if you don't have enough RAM.
  2. Multiple Volumetric Grids are present in the scene - a pre-pass will be run for each grid - this may delay the rendering start long enough to negate the render speed gains from the optimization.
  3. Progressive Rendering is enabled - the pre-pass will delay the start of the rendering process - you may want to disable it if that behavior is undesirable.

This parameter only affects the rendering speed - the quality of the rendered image is not affected.


Optimize Big Volumetric Grids: disabled , Render Time: 3m 31s.


Optimize Big Volumetric Grids: enabled, Render Time: 2m 21s.




Volumetric Options → Smoke Opacity → Minimum Visible Opacity

If the opacity of a voxel is below the specified value, the voxel will not be shaded at all. This option is a huge time saver for volume rendering. It should always be kept at 0.001 or higher unless the Smoke is getting cut off abruptly.


Minimum Visible Opacity: 0.005, Render Time: 54 seconds.


Minimum Visible Opacity: 0.001, Render Time: 61 seconds.


Minimum Visible Opacity: 0.000, Render Time: 66 seconds.




Volumetric Options → Smoke Color → Scattering

This option controls how light rays are scattered inside the volume. It's best kept at Approximate or Approximate+Shadows (the latter also affects the shadows cast over the scene geometry).

Ray-Traced (GI only) is the more realistic setting, but it would be very slow to render with large grids using V-Ray Adv (CPU). You could use this option when:

  1. You need realistic looking vapor clouds.
  2. You are rendering with V-Ray GPU - Ray-Traced Scattering is significantly faster when rendering on the GPU. V-Ray Global Illumination should be enabled for this option to have any effect, otherwise it would default to Disabled scattering.
  3. You are rendering in Volumetric Geometry Mode with V-Ray Adv (CPU) - the Approximate and Approximate+Shadows options are not supported.


Scattering: disabled, Render Time: 80 seconds.


Scattering: Ray-Traced(GI), Render Time: 177 seconds.


Scattering: Approximate, Render Time: 57 seconds.




Volumetric Options → Smoke Color → External Scatter Mult

If you want to get a better sense of volume for the look of the smoke, instead of increasing its opacity, you could decrease the External Scatter Mult - this would prevent light from going too deep in the smoke and you would get stronger shadows in the volume with the same opacity.


External Scatter Mult: 1.0


External Scatter Mult: 0.9


External Scatter Mult: 0.75




Volumetric Options → Fire → Fire Lights

Enabling Create Fire Lights simulates Global Illumination by placing light sources in the bright parts of the fire, which produces similar results and renders much faster. It can be used in with both GI on and off as well, because it would help in cases where large environments need to be illuminated by very small, very bright Fire Lights. Note however, that if there are many glossy surfaces in the scene to reflect the light from the fire, Create Fire Lights could slow down rendering, so in this case try turning it off.

Disable Create Fire Lights - if this speeds up the rendering significantly then you can experiment with the options in the Fire Lights section.

When rendering with V-Ray GPU, the Fire Lights options are ignored entirely. Global Illumination should be enabled from the V-Ray Settings if you need the Smoke and/or the scene to be illuminated by the fire.


Create Fire Lights Enabled, Grid-Based Self-Shadowing , Light Resolution: 25% , Render Time: 14m 45 seconds


Create Fire Lights Disabled, Render Time: 1h 0m 03 seconds




Grid-Based Self Shadowing ignores any geometry inside the grid and shines right past it. This also applies for intersecting grids. If this behavior is undesirable, switch to Ray-Traced Self-Shadowing mode.


Grid-Based Self-Shadowing , Light Resolution: 25% , Render Time: 14m 45 seconds


Ray-Traced Self-Shadowing , Light Resolution: 25% , Render Time: 1h 53m 06 seconds




If you are in the default Grid-Based Self-Shadowing mode, the most important thing for increasing render speed is to try to decrease the Light Resolution(%), especially if there are many volumes shining on each other. Do not be afraid to decrease it below 1% - light resolution usually does not matter for detail nearly as much as the opacity resolution so you should be able to drop it very low before shading artifacts start showing up.


Light Cut-Off specifies a threshold for the light intensity, below which the light form the Fire Lights will not be computed on surfaces – it can be a huge time saver, especially with many grids or complex geometry in the scene. Increase it to limit the effect of the Phoenix light to some distance around the simulator. Increasing it too much would start showing up on illuminated geometries as abrupt edges where the illumination from the Fire Lights stops.


Grid-Based Self-Shadowing , Light Resolution: 25% , Render Time: 14m 45 seconds


Grid-Based Self-Shadowing , Light Resolution: 10% , Render Time: 6m 02 seconds


Grid-Based Self-Shadowing , Light Resolution: 5% , Render Time: 5m 05 seconds


Grid-Based Self-Shadowing , Light Resolution: 1% , Render Time: 4m 08 seconds






For very simple scenes, setting the V-Ray Settings → Global Switches → Advanced → Adaptive lights drop-down to Full Lights Evaluation may speed up the rendering of volumetric effects.

For more information on Adaptive Lights, take a look at the Understanding Adaptive Lights article.


Smoke Opacity and Probabilistic Volumetrics


Thick (highly opaque) Smoke renders faster than thin (highly transparent) Smoke because the lighting calculations for voxels completely hidden behind other, opaque voxels, can be skipped entirely.

If your Smoke is dense, you can speed up rendering further try enabling the Use Probabilistic Shading option in the Environment and Effects window to see if that gives you a boost in render speeds.

If your Smoke is highly transparent, Probabilistic Volumetrics won't make much of a difference, and in some cases may even slow down your renders.

If you are using V-Ray's Progressive Sampler, Probabilistic Volumetrics should improve performance.

If V-Ray's Global Illumination is enabled, the number of GI Samples will heavily affect the render times. Both high and low values will increase the render time - you should aim to find a good value somewhere in the middle.


Probabilistic Shading: disabled , Render Time: 91s.


Probabilistic Shading: enabled, Render Time: 54s.


V-Ray Adv vs V-Ray GPU Rendering of Volumetric effects


All options under the Rendering rollout are supported by V-Ray Adv (CPU).

The following options are not supported by V-Ray GPU:

  1. Smoke Color → Scattering → Approximate & Approximate+Shadows - V-Ray GPU is significantly faster when using the Ray-Traced (GI Only) option. V-Ray Global Illumination should be enabled for this option to have any effect.
  2. Smoke Color → Volume Light Cache. This option refers to the internal  Phoenix Light Cache which is not related to the V-Ray Light Cache. It's a CPU-only feature that helps speed up Bucket rendering.
  3. Fire → Fire Lights. All Fire Lights options are ignored when rendering with V-Ray GPU. Enable Global Illumination from the V-Ray Settings if you need the Smoke and/or the scene to be illuminated by the fire.


V-Ray Next Adv. CPU with Brute Force / Brute Force GI


V-Ray Next GPU with Brute Force / Brute Force GI

Table of Contents