©BBB3viz

This page provides information on the Rendering rollout.

Overview


For convenience, the shading and rendering of Volumetric effects (Render Mode: Volumetric, Volumetric Geometry, and Volumetric Heat Haze) are handled by the built-in Volumetric shader of the V-Ray Volume Grid. All parameters necessary for rendering a Fire / Smoke simulation can be found under the Rendering rollout and its sub-rollouts. 

The Volume Grid is able to operate in multiple rendering modes that can be divided into two main branches: volumetric and surfaces (Isosurface, Mesh, Ocean Mesh and Cap Mesh). The volumetric modes are used for fire and smoke. Maya materials can't be used to shade volumetrics, so their shading is described in the FireSmoke Color and Smoke Opacity rollouts. The surface modes can be used for some interesting fire-related effects, like freezing flame or cartoon-style smoke. Unlike the volumetric modes, surface modes have no dedicated shader; they use the material applied to the Volume Grid.

The V-Ray Volume Grid also provides you with the option to generate a mesh surface based on any of the supported channels. Thus, a Smoke simulation can be rendered as a polygon mesh with a custom material applied to it.

For a list of supported Render Elements, please check the  V-Ray Render Elements Support page.

You may also check the Volumetric Rendering In-Depth guide for tips on speeding up the rendering of volumetric effects with V-Ray.


Parameters


Expand – Opens a floating dialog that contains the selected rollout and automatically folds the command panel rollout.

Re-Center – Resets the position of the floating rollout.

? – Opens up the help documents for the Rendering rollout.

Render Presets... – Opens a menu for loading and saving different presets. The following options are available:

  • Load from File...
  • Save to File...
  • Fire/Smoke from Phoenix FD
  • Fire/Smoke from FumeFX
  • Fire/Smoke .vdb from Houdini
  • Liquid .vdb from Houdini
  • Fire/Smoke .vdb from Maya Fluids

Mode | rendmode – Specifies the method for visualizing the grid content. For fire/smoke, select a Volumetric method. For liquids, select a geometry method.

Volumetric – Visualizes the content as a standard 3ds Max atmospheric. This method is used mostly for fire and smoke.
Volumetric Geometry – This method requires V-Ray. Used to export deep images and render elements such as normals, velocity, multi matte, etc. It produces the same result as the Volumetric option by using procedural geometry made up from multiple transparent layers. 

Approximate and Approximate+Shadows options for the Scattering parameter in the Smoke Color window are not supported in Volumetric Geometry mode.

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.

Volumetric Heat Haze – Produces the same result as the Volumetric Geometry option, and also adds a heat haze effect when used with the Heat Haze parameter. Note that you might need to increase the Max depth of a VRayMtl with refraction in case it intersects with the Heat Haze shader. For more information, see the Heat Haze example below.
Isosurface – Produces a procedural isosurface without polygons at render time using the Surface section options. Compared to the Mesh mode, the result is always smooth but takes longer to render.
Mesh – The content is converted into a standard 3ds Max mesh using the Surface section options. This mode is mostly used for liquids, but can be applied to thick smoke using a scatter material or to plumes of smoke to create effects such as large underwater bubbles.
Ocean Mesh – The grid content is extended to a flat area, fitting the camera's view. In most cases, this mode is used with a displacement texture such as the Phoenix FD Ocean Texture.
Cap Mesh – Only the upper liquid surface is rendered. This mode can be used for swimming pools and other placid liquid surfaces.

The ocean surface can be generated only when the liquid touches the sides and the bottom of the grid, which act as a container for the liquid. The detail of the mesh extension around the simulator depends on the camera resolution - for each pixel of the viewport or the rendered image, one or several polygons are generated, depending on the Ocean Subdivisions option.

Volumetric Options – Opens the Volumetric Render settings window which contains the following rollouts:

  • Fire – Controls the emissive (fire) color of the volumetric shader, and the light emitted by the Simulator.
  • Smoke Color – Controls the diffuse color of the volumetric shader.
  • Smoke Opacity – Controls the transparency part of the volumetric shader.

When the Pin icon is enabled, the Volumetric Render Settings window will remain open even after deselecting the Simulator, Voxel Shader, or V-Ray Volume Grid.

The option's default state is set to "Pinned", but if you need to change its behavior, you can do so from the Phoenix FD Global Preferences menu.

Step % | rendstep – Specifies the ray marching step of the camera rays as a percentage of the cell size. As the renderer traces rays through the Volume Grid, this value controls how often to get information from the grid. If the this value is more than 100, some cells start getting skipped and artifacts may appear. If rendering volumetrics with a specific transparency curve, a lower percentage might be necessary so that fine details are not lost. On the other hand, increasing the this value increases the rendering speed. This parameter is used when Mode is set to VolumetricVolumetric GeometryVolumetric Heat Haze and Isosurface modes.  For more information, see the Step % example below.

Shadow Step % rendshadstep  – Specifies the ray marching step of the rays used to evaluate the lighting (shadow rays) as a percentage of the cell size. Usually, this value can be higher than Step %, as generally shadows do not need so much detail. Increasing the Shadow Step % also speeds up rendering performance, particularly with dome and area lights.  

Border Fade | borderFade – Makes the content near the grid's boundaries more transparent to prevent sharp edges from being rendered. This parameter controls how far from the boundaries the transparent effect should start, in voxels.

Heat Haze | heathazehhfactor – Traces the ray changing direction according to the gradient of the Surface channel. A value of 1 corresponds approximately to the normal heat haze in the air caused by the temperature. If smoke or another channel is selected as the source, a larger value might be necessary to achieve a visible result. A value of 0 produces no heat haze. This parameter is available only when Mode is set to Volumetric Heat Haze. For more information, see the Heat Haze example below.

Sampler Type | sampler – Determines the blending method between adjacent grid cells.

Box – Displays cells as cubes. There is no blending between neighbor cells. This is the fastest mode.
Linear –  Linear blending occurs between neighbor cells to smooth out the fluid's look. Sometimes this mode may unveil the grid-like structure of the fluid. Up to 20-30% faster than the Spherical option.
Spherical  – Uses special weight-based sampling for the smoothest looking fluid. With increasing resolution, the visual advantage of this method over the Linear method becomes less noticeable.

Cutter Geom | usegizmogizmo – When enabled, rendering occurs only inside the selected geometric object's volume. If Fire Lights are enabled, only those inside the cutter are rendered. Note that the Cutter Geom does not work when the render Mode is set to Volumetric Geometry.

Invert Cutter | invgizmo – When enabled, rendering occurs only outside of the render cutter. This is not the same as a cutter with inverted geometry because any rays that do not intersect the cutter are shaded as well.

If using a Cutter Geom for a liquid pouring into a glass or otherwise contained into another refractive object, you may need to set the Mode to Isosurface.  By default, the mode is set to Mesh which may produce artifacts in the rendered image.



Example: Step %


This example shows how the Step % value can be used to improve the quality of the ray-marching.

The Step % value is set to 50 for the first image, and 150 for the second image.

50
150

Example: Heat Haze


Heat Haze adds refraction at each ray-marching step through the volume.

To turn on heat haze, choose Volumetric Heat Haze as the Render Mode, and set the Heathaze parameter to a value greater than 0.

off
on

Heathaze adds refraction at each ray-marching step through the volume. This only affects the camera's view. Heat haze does not affect shadows cast through a volume.


Surface Channel


This section controls the conversion of the grid content into geometry. If Mode is set to Mesh, Ocean Mesh, Cap Mesh or Isosurface, the Surface channel needs to be set and an appropriate Isosurface Level must be chosen from this section.

The controls in this section also denote the surface used in Gradient and Surface-driven displacement. This way it can affect all render modes, not just the surface modes.

The technique for generating the surface is based on the isosurface concept. The resulting surfaces are mostly used to render liquids, but can be used for smoke and fire as well to create effects like underwater bubbles, freezing fire, etc.

Surface Channel | sarg – Specifies the channel that defines the surface of the fluid. It is used for solid rendering and displacement.

Texture - The values of a custom texture define the liquid surface;
Liquid/Temperature 
- The Liquid/Temperature channel defines the liquid surface. Temperature is typically in the range 0-1 for Liquid simulations and 600-2000 for Fire / Smoke simulations;
Smoke 
- The Smoke channel defines the liquid surface. Smoke is typically in the range of 0-1 for Fire / Smoke simulations;
Speed 
- The Speed channel defines the liquid surface. Speed channel output has to be enabled for this to work. Speed is calculated as the length of the velocity vector for each voxel;
Fuel 
- The Fuel channel defines the liquid surface. Fuel channel output has to be enabled for this to work. 

Texture | stex – If the Surface Channel is set to Texture, this slot specifies the texture. In MeshOcean MeshCap Mesh and Isosurface render modes, the selected map completely replaces the cache files that have been loaded, if any.

Invert Volume | solidbelow – By default the values above the surface level are considered internal. When enabled, this option swaps the inside and outside.

Isosurface Level | surflevel – Allows you to specify a threshold value for the generation of the liquid surface. Grid cells below this value are ignored. Isosurface Level is used only in IsosurfaceMeshOcean Mesh and Cap Mesh Modes.

The proper value for the Isosurface Level parameter depends on the numerical range of the surface channel. For example, Phoenix FD liquids are kept in the range of 0 to 1. A value of 0 means there is no liquid in a certain voxel, and a value of 1 means the cell is 100% full of liquid. Values in between indicate a certain mixture of air and liquid. For such cache files, an Isosurface Level value of 0.5 is best for visualizing the surface between the air and liquid.

Imported caches from Houdini, on the other hand, use positive and negative values to indicate whether a voxel is inside or outside the liquid volume, so a correct "halfway" Isosurface Level value would be 0.0.
For Phoenix FD Smoke, the proper value is about 0.01, and for Phoenix FD temperature, which is in Kelvins, the value is several hundred.


Ocean


Ocean Level %oceanlevel – Used with the Ocean Mesh and Cap Mesh rendering modes. Specifies the water level as a percentage of the total grid height.

Ocean Subdivs | meshsubdiv – Used with the Ocean Mesh and Cap Mesh rendering modes. When generating the far areas of the surface, this determines how many vertices are generated for each pixel of the image. Like with V-Ray subdivisions, the square of the parameter value is used. For example, if you increase the subdivisions twice, the vertices count grows four times. For more information, see the Ocean Subdivisions example below.

Increasing the Ocean Subdivs may dramatically increase the amount of consumed RAM.

Pure Ocean pureocean – Creates a flat ocean surface up to the Ocean Level height. It does not need loaded caches and if there are any, it ignores their content, so no simulation details will show. Thus changing frames and generating the ocean surface is very quick. This allows you to preview the behavior of the Phoenix FD Ocean Texture when Displacement is enabled or if you want to set up your texture for the Wave force. The option is available for both preview and rendering in Ocean Mesh or Cap Mesh modes. During preview, it requires the Show Mesh option to be enabled in the Preview rollout.

Underwater Goggles | uwglasses – This option is designed to be used when the camera is placed under the water in Ocean Mesh or Cap Mesh mode. When enabled, a surface gets automatically added in front of the camera, using the same material that is assigned to the Simulator, and this way mimics the effect of real life underwater goggles. This way the ocean volume receives the Fog color from the material assigned to the Simulator, and the field of view shrinks when the index of refraction of the material is above 1.



Example: Ocean Subdivisions


The following example shows how increasing the Ocean subdivisions twice makes the vertices count to grow four times:


2
8



Motion Blur


To render your simulation with Motion Blur, make sure that your cache files contain a Velocity field and that it is properly remapped to the internal V-Ray Volume Grid Velocity channel in the Input → 3rd Party Channels Mapping dialog.

Multiplier | mbmult – Specifies a multiplier that affects the strength of the motion blur. May also be a negative value.

Volumetric Motion Blur | vol_moblur_method – Specifies the type of Motion Blur that will be used.

Ray-traced The default Volumetric Motion Blur method.
Grid-based This method could be used instead of the default Ray-traced method in cases when you need more visible motion blur streaks, especially with faster moving fluids. The method requires a pre-pass and uses more memory.

Note that the Grid-based method only affects the Volumetric, Volumetric Geometry, and Volumetric Heat Haze Modes and it doesn't apply to Mesh, Ocean Mesh, Cap Mesh, or Isosurface Modes.

Prevent Self Intersection | mbself – In certain cases, the shifted vertices might penetrate the opposite side of the geometry. When enabled, this option prevents such situations. The self-intersection analysis is expensive, so enable this parameter only when an intersection is obvious.

When rendering regular meshes with motion blur, the entire mesh is moved along its transformation path back and forward in time, and so each individual vertex of the mesh follows this path. However, when rendering a meshed surface, for each rendered frame a new mesh must be built from the voxel grid, and so it usually has a different number of vertices than the previous and the next frame. Because of this, individual vertices cannot be traced back or forward in time between frames. Instead, motion blur of fluid meshes uses the velocity of vertices which is recorded by the simulation, and moves each vertex back and forward in time along the vertex velocity. This is why the generated liquid mesh does not support frame sub-sampling for motion blur. This may cause a mismatch between the liquid and transforming/deforming objects in your scene that interact with it. The fluid mesh is generated from data at the exact rendered frame and fluid data for the preceding or following frames is not used, unlike regular deforming meshes. As a consequence, the liquid and the objects in your scene will synchronize best if those objects do not use additional geometry samples for motion blur.


Example: Volumetric Motion Blur for Fire



Grid-based Volumetric Motion Blur

Ray-traced Volumetric Motion Blur

No Volumetric Motion Blur




Example: Volumetric Motion Blur for Explosions



Grid-based Volumetric Motion Blur

Ray-traced Volumetric Motion Blur

No Volumetric Motion Blur


Mesh Smoothing


Smoothness | smoothmesh – Specifies the number of smoothing passes. The higher the value, the smoother the result, but the mesh will require more time to calculate. Used when Mode is set to MeshOcean Mesh, or Cap Mesh to reduce the roughness of the mesh. 

Smooth Normals | smooth_normals – Smooths the normals of the mesh in order to get an even smoother-looking result, even if the mesh is with low resolution. However, when Displacement is enabled to add fine details, the smoothing of normals should not diminish that and can be turned off.

Use Liquid Particles | useprt – Enables particle-based smoothing of the mesh. It requires Liquid particles to be simulated and exported to the cache files. This method overcomes the limitations of the basic smoothing without particles, which can flicker in animation and cause small formations in the mesh to shrink.

Particle Size | prtsz – Used to make the liquid thicker or thinner. Works only when Use Liquid Particles is enabled. This parameter specifies the distance from the mesh surface to the particle centers.


Displacement


Displacement is a technique intended to add detail to the simulation during rendering. The idea of the Phoenix displacement is similar to the usual geometry displacement: a texture is sampled, and the corresponding point of the fluid volume or surface is shifted in a direction at a distance determined by the texture. You can plug any V-Ray, 3ds Max or Phoenix texture maps.
You can use the Phoenix FD Simulator's Mesh Preview option to check how the attached displacement map is affecting the surface when Mode is set to MeshOcean Mesh or Cap Mesh.

Enable – Enables the displacement effect.

Multiplier | displmul  – Specifies the displacement amount.

Type | displ2d – Specifies the displacement technique. 

Gradient driven – Requires a monochrome texture map. The displacement amount is the texture's brightness at each point. Each point of the fluid is shifted along the gradient of the Surface channel. This means that each point in space could have a different displacement direction. This method is suitable for smoke and fire.
Surface driven – Requires a monochrome texture map. The displacement amount is the texture's brightness at each point. Each point of the fluid is shifted along the normal of the point's projection on the isosurface of the fluid's Surface channel. The texture is also sampled at the projection point.  Unlike the Gradient driven displacement, this ensures that all points above of below the fluid surface will be displaced in the same direction, and so displacing fire/smoke simulations produces better results that are more similar to displaced solid geometry surfaces. However, the Surface driven method is slower than Gradient driven.
Vector – Requires a colored vector texture map (with negative and positive values). The point is shifted by the texture color, interpreted as a 3D vector. This displacement mode is intended to be used with the Phoenix FD Ocean Texture but can be used with any other vector displacement texture.

    • If Mode is set to MeshOcean Mesh or Cap Mesh, then it requires a texture in the format used for V-Ray Tangent Vector displacement, where X and Y of the texture are 0.5-based, and the Z direction is 0.0-based. This means that if you use a texture where the Red and Green colors are gray and the Blue color is black, it will produce no displacement; brighter color than these will move the fluid points along the positive axes, and darker and negative colors will displace the fluid point along the negative axes. A texture in such a format is the Phoenix Ocean Texture in Vector Mode.
    • If Mode is other than the mesh modes, Vector displacement requires a texture which is 0.0-based, so black color means no displacement, brighter colors shift the fluid points towards the positive axes and negative colors - along the negative axes. Such a texture is the Phoenix Grid Texture with its Channel set to Velocity.

Advection – Requires a colored 0.0-based vector texture map (with negative and positive values). A very similar method to Vector, but does not produce grainy structures for fire and smoke. Can be combined with the Phoenix Grid Texture, with its Channel set to Velocity, to produce render-time gridless advection. For more information, see the Advection Displacement example below.

Map | displ2 – Specifies the map used to displace the fluid mesh or Isosurface. V-Ray automatically detects if a monochrome texture is used and displaces the surface along its normals, or if a colored texture is used and treats it as a 3D vector displacement. If a monochrome texture is used, black color with value of 0.0 means no displacement, positive colors extrude the surface outwards, and negative colors subside the surface. In 3D vector mode, the texture is expected to be in the format used for V-Ray Tangent Vector displacement, where X and Y of the texture are 0.5-based, and the Z direction is 0.0-based. Such a texture is the Phoenix FD Ocean Texture.

Vertical Fade Level | fadebylevel, displfade – Specifies how high above the Ocean Level the displacement stops having effect. This option is needed for ocean simulations where you have liquid flying or splashing high above the ocean surface, so that the ocean displacement affects only the calm ocean surface, but does not displace the liquid flying high above the ocean, or you will be able to see small pieces of liquid move up and down as they fly due to the ocean waves displacement. Above the Vertical Fade Level there is no displacement at all, and below it the displacement is strongest near the Ocean Level and is gradually reduced moving up from the ocean surface. This parameter is a percentage of the grid height, just as the Ocean Level option.

Fade Above Velocity | fadebyvel, displvelfade – If the fluid velocity (in voxels/sec) in a voxel is higher than this value, there is no displacement at all. When the velocity is lower than this value, the higher the velocity, the weaker the displacement is. This allows you to suppress displacement for the fast moving parts of the fluid where the displacement visibly disturbs the motion in an unnatural manner, and thus you can have only the still ocean surface displaced with waves. This option requires a Velocity channel to be present in the loaded cache files.



Example: Surface Driven vs. Vector Displacement




Surface driven displacement


Vector displacement



Example: Advection



Regular smoke and fire, 5M cells

Advection displacement with the simulation's own velocity,
using a PhoenixFDTexmap and multiplied by a noise map



Example: Advection Displacement Maps




Advection displacement with a vector map between -1 and 1

Advection
displacement with a monochrome map between 0 and 1 



Example: Volumetric Displacement


A grid with 24 million cells with applied displacement. This resolution is not enough by itself for a convincing result.



Enable parameter off for displacement


Enable parameter on for displacement