This article explains the settings and values for the Corona Volume Grid object in Cinema 4D.


Overview


The Corona Volume Grid allows you to render objects which are truly volumetric and based on a 3D grid, as opposed to meshes with the Corona Physical Material or the Corona Volume Material which always require some kind of surface consisting of polygons to display the volume.

The typical uses of the Corona Volume Grid are fire, explosions, smoke, clouds, steam, and other visual effects based on particle or fluid simulations, objects which are not possible or hard to render when using classic polygonal mesh.





Supported formats


Only the OpenVDB (.vdb) format is supported. You can learn more about it at http://www.openvdb.org/, and you can download sample .vdb files at http://www.openvdb.org/download/

The Corona Volume Grid also supports animated OpenVDB files (.vdb sequences) as well as Cinema 4D's Pyro fire and smoke simulation tool which was introduced in their 2023 release. For more information about Pyro, please see MAXON's user guide here.

Once you have run your Pyro simulation you can then link it to the Corona Volume Grid object using the eyedropper button found in the "Object" tab. If the simulation has not been cached already you will receive a prompt asking how you would like to store the cache. There are two options for this: 

Cache scene – Prompts you to store all Pyro output objects that are used in a scene to disk in a location chosen by the user.

Cache Allows you to cache a single Pyro output object from a scene.

Exported simulations can take up a lot of HDD storage space so it is worth keeping an eye on the capacity of your HDD.

Once either method has been completed, the cache is automatically linked to the Corona Volume Grid object and rendering can begin.


Object Properties


File field – This field displays the loaded file or a sequence of OpenVDB files from a disk. If one file is selected by the user, the sequence of files is auto-detected. If more files are selected by the user, only those files are loaded, and they are placed into the sequence by their alphabetical order.

Starting from Corona 10, use the folder icon in order to select an OpenVDB file or a sequence. For previous versions, use the Select files button.

Folder icon - Allows you to load pre-existing .vdb sequences from disk.

Eyedropper icon - Links a Pyro Output object to the Corona Volume Grid object.

Reload from disk – Reloads a previously loaded file or sequence of OpenVDB files from the disk.

Online help – Provides additional guidance for the use of the Corona Volume Grid object.


Animation

Enable animation – Enables or disables the use of the OpenVDB file animation data.

Animation parameters are available only if the OpenVDB files include this data. The animation data is not always included in every single OpenVDB file, unless it is indicated when exporting the OpenVDB file in the software used to export it.

Mode – Sets how the sequence of the OpenVDB files is mapped onto the Cinema 4D timeline.

Repeat – The whole sequence is periodically repeated (the first frame appears after the last frame).
Ping Pong – Sequence is repeated in a continuous way (e.g. frames 1 to 5 are repeated as follows: 1 2 3 4 5 4 3 2 1 2...).
Freeze out of range – Frames below the range of the loaded sequence are displayed as the first frame of the sequence and frames above the range as the last frame of the sequence.
Hide out of range – Out-of-range frames are not displayed.

Frame offset – Determines how much the OpenVDB sequence is offset compared to the current Cinema 4D timeline. Setting offset to 1 displays frame 1 to the OpenVDB sequence when the Cinema 4D frame number is 2 (so the OpenVDB sequence is delayed by 1 frame).

Speed multiplier – Determines how fast the OpenVDB sequence runs. Setting this value to 1 results in one OpenVDB frame per one Cinema 4D frame, while setting this value to 2 results in two OpenVDB frames per one Cinema 4D frame.

Load nearest if missing – When enabled, missing frames in the Open VDB sequence are replaced by the closest frame.


Viewport display

Type – Determines how the current OpenVDB fame is displayed in the viewport.

Bounding box – Only the bounding box of selected OpenVDB channels is displayed.
Point cloud – The volume is displayed as a point cloud; each point position is determined by the volume density and its color by channel mapping/tint settings (requires loading of channels - slow for huge files).

Quality – Determines the total number of points displayed for the point cloud display mode.






Corona Volume Grid Viewport display type

Bounding box/Point cloud

Before image
After image


Corona Volume Grid Viewport display quality

Point cloud quality = 5%/100%

Before image
After image


Rendering


Interpolation – This parameter specifies how emission/scattering/absorption values are computed from the channel.

None – No interpolation, the fastest method, but also prone to artifacts.
Linear – Linear interpolation, good quality, and reasonable speed.
Quadratic – Quadratic interpolation, the best result but the lowest speed.

Step size – Determines ray marching step size. Increasing the value leads to faster rendering with more noise and possibly some artifacts while lowering the value leads to less noise but slower render times.

Flip frame – Flips the frame of the OpenVDB channels (more specifically, the Y and Z axes).

Alpha mode – Specifies how the object is visible in the alpha channel. Available modes are:

Default – This is the default mode. In this mode, the object's alpha value is derived from the data in the OpenVDB file.
Always black – In this mode, the object's alpha value is black (the object shows as transparent).
Always white – In this mode, the object's alpha value is white (the object shows as opaque).

Motion blur & frame interpolation

Mode – Defines how motion blur and frame interpolation are computed.

Disabled – Both frame interpolation and motion blur are disabled (in both cases, we only use the frame closest to the current time).
Simple – Simple linear interpolation between two OpenVDB frames, may lead to artifacts.

Velocity – Enables smooth interpolation/motion blur using velocities stored in the OpenVDB file. For this mode to work properly, you must select a velocity channel.

Multiplier – Specifies the strength of the motion blur effect.

Frame interpolation is necessary when OpenVDB sequence frames are offset by a non-integer number or have a non-integer speed multiplier.






Corona Volume Grid: Rendering interpolation

Interpolation = None

Interpolation = Linear

Interpolation = Quadratic


Corona Volume Grid: Rendering step size

Step Size = 0.1

Step Size = 1

Step Size = 5

Step Size = 10


Corona Volume Grid: Rendering flip frame

Flip Frame Disabled/Enabled
Before image
After image




Emission


Enable – Enables emissions in the volume.

Channel – Selects the channel that is used as a source for medium emission. Along with channels (grids) presented in the OpenVDB file, such as Temperature, Density, Velocity, etc., a special option can be selected:

Constant – Contains only the value 1, which fills the whole bounding box of the volume grid.

Enable tint – Enables modulation of the emission's final color.

Tint – Selects a solid color different than white to affect the emission's final color.

Shader – Loads a texture map or shader to affect the emission's final color.

Mode – Defines the way in which data in the selected emission channel is mapped to the final emission of the volume.

Blackbody – The emission channel is treated temperature of Kelvin and converted to color according to blackbody radiation laws.
Raw data – Channel data are not mapped and are only influenced by scale and tint.
Channel mapping – The emission channel undergoes mapping to colors, which are accessible under the Channel color mapping section.

Scale – This parameter uniformly scales emission amount after mapping.

Temp. scale – If the emission mode is set to Blackbody, the selected emission channel is treated as the temperature in Kelvin degrees, and these parameters are used to linearly scale the temperature.


Channel color mapping

Channel color mapping can be used to colorize the properties of the volume grid (emission, absorption, scattering) based on a gradient. For example, a red-yellow gradient can be used to create realistic fire.

The channel mapping parameters allow for mapping floating point values stored in the channel to colors. The mapping is computed as follows:

  • The float value is mapped to color using the color gradient. The leftmost color of the gradient defines how the value of 0 is mapped to color, while the rightmost color defines how the value of 1 is mapped to color.

  • The color computed from the gradient is scaled by the curve. Note that the curve input is not the color from the gradient, but the input-scaled floating value from the channel (i.e. the result of operation 1).

  • The final color is computed by scaling the color back using the inverse of the Input scale value.

Input scale – The float values are scaled by this parameter so they fit into the [0,1] value range.

Auto-scale – This button allows the computation of the input scaling value automatically.






Corona Volume Grid: Emission

Emission = Disabled/Enabled

Before image
After image


Corona Volume Grid: Emission channel

Channel = Temperature/Constant

Before image
After image






Corona Volume Grid: Emission scale

Scale = .1

Scale = .5

Scale = 1

Scale = 2


Corona Volume Grid: Emission tint

Tint = White (Default)

Tint = Green (R=0, G=255, B=60)

Tint = Red (R=255, G=0, B=0)

Tint = Blue (R=0, G=0, B=255)


Absorption


Enable – Enables absorption in this volume.

Channel – Allows selecting the channel that is used as a source for absorption. Along with channels (grids) presented in the OpenVDB file, a special option can be selected:

Constant – Contains only the value 1, which fills the whole bounding box of the volume grid.

Enable tint – Enables modulation of the absorption's final color.

Tint – Selects a solid color different than white to affect the absorption's final color.

Shader – Allows loading a texture map or shader to affect the absorption's final color.

Scale – Uniformly scales the absorption amount after mapping.

Enable channel color mapping – Enables the Channel color mapping parameters, where you can choose how values from the selected channel are mapped to colors.


Channel color mapping

Channel color mapping can be used to colorize the properties of the volume grid (emission, absorption, scattering) based on a gradient. For example, a red-yellow gradient can be used to create realistic fire. The channel mapping parameters allow for mapping floating point values stored in the channel to colors. The mapping is computed as follows:

  • The float value is mapped to color using the color gradient. The leftmost color of the gradient defines how the value of 0 is mapped to color, while the rightmost color defines how the value of 1 is mapped to color.

  • The color computed from the gradient is scaled by the curve. Note that the curve input is not the color from the gradient, but the input-scaled floating value from the channel (i.e. the result of operation 1).

  • The final color is computed by scaling the color back using the inverse of the Input scale value.

Input scale – The float values are scaled by this parameter so they fit into the [0,1] value range.

Auto-scale – Allows the computation of the input scaling value automatically.






Corona Volume Grid: Absorption scale

Scale = 0.1

Scale = 0.5

Scale = 1

Scale = 10


Corona Volume Grid: Absorption tint

Tint = White (Default)

Tint = Red (R=255, G=0, B=0)

Tint = Green (R=0, G=255, B=0)

Tint = Blue (R=0, G=0, B=255)


Scattering


Enable – Enables scattering in this volume.

Channel – Allows selecting the channel that is used as a source for scattering albedo. Along with channels (grids) presented in the OpenVDB file, a special option can be selected:

  • Channel - Contains only the value 1, which fills the whole bounding box of the volume grid.

Enable tint – Enables modulation of the scattering's final color.

Tint – Allows selecting a solid color different than white to affect the scattering's final color.

Shader – Allows loading a texture map or shader to affect the scattering's final color.

Scale – Uniformly scales the scattering amount after mapping.

Directionality – Directionality equals 0 produces isotropic (diffuse) scattering, positive values produce forward scattering and negative values produce backward scattering. The default value of 0 is suitable for most media, with the exception of clouds where a higher positive number produces the effect of a silver lining. Values close to - 1 or 1, increase the amount of image noise.

Single bounce only – When enabled, only a single bounce (direct lightning) is scattered in the medium. This results in a biased (darker), but faster, rendering. Useful for example for rendering god rays.

Enable channel color mapping – This checkbox enables the Channel color mapping parameters, where you can choose how values from the selected channel are mapped to colors.


Channel color mapping

Channel color mapping can be used to colorize the properties of the volume grid (emission, absorption, scattering) based on a gradient. For example, a red-yellow gradient can be used to create realistic fire. The channel mapping parameters allow for mapping floating point values stored in the channel to colors. The mapping is computed as follows:

  • The float value is mapped to color using the color gradient. The leftmost color of the gradient defines how the value of 0 is mapped to color, while the rightmost color defines how the value of 1 is mapped to color.

  • The color computed from the gradient is scaled by the curve. Note that the curve input is not the color from the gradient, but the input-scaled floating value from the channel (i.e. the result of operation 1).

  • The final color is computed by scaling the color back using the inverse of the Input scale value.

Input scale – The float values are scaled by this parameter so they fit into the [0,1] value range.

Auto-scale – This button allows the computation of the input scaling value automatically.






Corona Volume Grid Scattering scale

Scale = 0.1

Scale = 0.5

Scale = 1


Corona Volume Grid Scattering tint

Tint = White (Default)

Tint = Red (R=227, G=97, B=97)

Tint = Blue (R=10, G=65, B=255)

Tint = Green (R=10, G=219, B=2)






Corona Volume Grid Scattering directionality

Directionality = - 1

Directionality = -0.5

Directionality = 0 (Default)

Directionality = 0.5


Corona Volume Grid Scattering single bounce only

Single bounce only On/Off
Before image
After image