Volumes

Blob Sample

The volume item is a very flexible, open-ended function that provides a means to create many unique and interesting forms that would be impossible to create otherwise, such as clouds, smoke, vapor clouds and dust clouds. They can also be further enhanced (and controlled) by Modo's numerous 3D procedural textures. There are several ways to create the volume effect, one being the single spherical volume that is created by the locator representation in the 3D scene, once the volume item is added. When using the Geometry option, the volume is confined to the inside of any completely closed, arbitrary geometric shape (closed meaning it is watertight with no holes). When using the Particle Source option, the source element's vertex positions determine multiple cloned volumes that combine to make the final overall shape (often overlapping). The shape of the volume particles are then controlled by the settings of the volume item.

Adding Volumes

You can add a volume item to a scene in the Items list, by clicking Add Item > Volumes, then double-clicking Volume, creating the item in the scene at the origin. Once added, the item layer appears at the bottom of the Items list. When selected, a number of attributes controlling the volumetric form appear in the Properties Panel. This is where you can also define a Surface as Volume item, or a point source. Either can be a good way to control the overall shape of the rendered volume. When neither is defined, the volume simply renders as a spherical, cubic or cylindrical form, based on the Radius value of the Geometry section (where its base shape can also be defined).

Applying Materials

Normally, surfaces are applied through the use of polygon tags that define masks in the Shader Tree controlling material placement, however, volumes are procedural constructs created at render time and have no user-selectable polygons to apply a tag to, so surfacing is applied to the volume item itself through the use of an item mask. This type of mask links shading properties directly with an item layer. You can quickly create an item mask by right-clicking on the volume item in the Items list and choosing the Create Item Mask option from the contextual menu. This adds a properly defined Material Group item of the same name as the volume item to the Shader Tree, where you can then add materials and other Shader Tree items, setting the appropriate effect for each layer, building up surfacing attributes just like for any other surface. You can control additional attributes of the particle source that are not surface-specific, such as density, size and dissolve amount. This can be done by creating an additional item mask and applying texture layers set to the appropriate effect type using the FX Item of the Shader Tree.

Note:  When a Mesh Item is defined in the Surface as Volume option, the resulting volume then picks up its surfacing from the target Mesh Item, so any surfacing meant for the volume needs to be applied in the material group specific to the geometry that is defined as the Surface as Volume.

Volume Particles

Volume panel

Option

Description

Name

Displays the current item name. You can change it by clicking on the field and typing the new name.

Transform

Position

An item transform that allows you to numerically position the item in XYZ space. By default, Position transforms originate from the center position.

Rotation

An item transform that allows you to numerically set the rotation of the item. By default, Rotation transforms originate from the center position.

Order

Allows you to set the order that rotations are applied to the camera item. Changing the order that rotations are applied can sometimes help to reduce or eliminate gimbal lock.

Scale

An item transform that allows you to numerically set the size of the item. By default, scale transforms originate from the center position.

Reset

Resets the selected transform values to (0,0,0) returning the items to their default state.

Zero

Resets the chosen transform property values to 0, leaving the center position and mesh position intact.

Add

Transform items are the channel groups associated with an item that store its transform values, controlling its position, rotation and/or scale. By default, new items do not have any transform items associated with them (even though they are visible here within the Properties panel). This is useful as an optimization as only the necessary transforms are added on an as-needed basis, reducing scene overhead. There are several ways to add them. One is by simply transforming the target item with one of the various transform tools (or by editing the values' input fields). This action causes the particular transform item to be added automatically to the Channels viewport list. The Add function here can also be used to add the selected set of transforms to the Channel list while keeping the default 0,0,0 values (a necessary step for referencing, in order to override the channels, they must first exist).

Geometry

GL Display

Toggles the display of the volume proxy in the 3D OpenGL viewport. Generally, this should be enabled to get an approximation of how the volume renders (the default state), but in heavy scenes it may be useful to disable this option to increase scene interactivity.

Particle Source

When a sprite item is created, it is represented by a single locator-type point at the World Origin, producing a single sprite image. To produce additional sprites or sprites as a volume, you need to define a particle source, which can be any item layer that contains vertices, where each vertex position is used to determine the position of the blob particle (any type of geometry can be used- single point polygons, vertices, two-point polygons and regular polygons, however, only the vertex positions of any component are used). Source layers can be normal geometric forms, point clouds that are imported or created using the particle cloud item or any of the particle tools. They can be imported particle simulations controlled by way of a MDD deformer, RealFlow point cache or an Alembic format data file.

Use Surface as Volume

When enabled, you can specify an arbitrary mesh layer that is used to contain the volume effect, giving you ultimate control over the shape of the resulting rendered volume. The target Mesh Item needs to be one that is completely closed. Mesh volumes with open seams or non-manifold surfaces may produce undesirable results. To test an object for holes, in Polygons Selection mode under one of the Modeling tabs, press and hold the Ctrl key, changing the Edges button into one that says Boundary and click on it. Any highlighted edges represent holes within the mesh's surface.

Surface as Volume

Determines the particular mesh layer that is used for the volume effect when Use Surface as Volume is enabled. For proper results, target Mesh Item must be fully enclosed.

Remove Surface

When this option is enabled (the default behavior), the specified Surface as Volume mesh layer is hidden at render time, and only show the resulting volume effect.

Surface Density Range

Specifies the amount of attenuation from the surface of the volume inward.

Particle Geometry

When the Use Surface as Volume option is disabled, you can specify a Particle Geometry element. This creates a procedural geometric-shaped volume around each vertex of a particle source (or the volume locator itself when none is defined). Particles can be few or many, but the combination of the particle positions and the particle geometry shape determines the overall volume effect at render time. The possible shapes include sphere, cube, cylinder and cumulus, a half dome shape that, when textured, looks similar to the familiar, puffy cumulus clouds.

Note:  It is recommended to only have as many particles as are necessary to determining the final form, as having many overlapping Volumes can slow rendering calculations considerably.

Particle Source

When a volume item is created, it is represented by a single locator-type point at the World Origin, producing a single volume image. To produce additional particle geometry volumes, you need to define a particle source, which can be any item layer that contains vertices, where each vertex position is used to determine the position of the sprite particle (any type of geometry can be used- single point polygons, vertices, two-point polygons and regular polygons, however, only the vertex positions of any component are used). Source layers can be normal geometric forms, point clouds that are imported or created using the particle cloud item or any of the particle tools. They can be imported particle simulations controlled by way of a MDD deformer, RealFlow point cache or an Alembic format data file.

Radius/Height

Defines the outside dimensions of the particle geometry object. Radius refers to the overall dimensions of the sphere and cube shapes, and Radius and Height work together to define the dimensions of a cylinder. From there, the size can be altered via the 'Random Size' option, the addition of a particle size Vertex Map that allows you to paint the scale for individual particles interactively, or with the application of a texture layer, under the FX Item of the Shader Tree, set to control Particle Size.

Size Gradient Input

Provides a means to define an input parameter in which to apply the following Size Gradient, determining the scaling of the resulting volume based on the chosen parameter. You can choose from a number of input parameters specific to volumes and particles, such a Texture Value (Density), Distance, and Particle Velocity.

Size Gradient

This is an inline mini gradient editor allowing you to define gradient value keys easily without having to leave the basic Modo interface. Much in the same way a keyframe stores transform values for items, gradient keys store values and softly attenuate between the defined key positions. Keys can be added by middle-clicking along the gradient and then clicking and dragging the keyup or down, adjusting the value at that position. The gradient bar directly underneath provides a visual reference to the values being generated by the gradient itself. The defined values act as a multiplier of the final volume size on the preceding Size Gradient Input option.

Random Size

Controls the amount of randomness added to the scale of each individual particle volume. The amount is determined by a scale percentage - a setting of 25% adjusts the scale of the base radius size by an amount of 0%-25% randomly across all particles, a setting of 50% adjusts the size by 0%-50% randomly across all particles and so on.

Use Particle Orientations

Aligns the particle to the direction vector from the particle source (direction of travel). The direction vector is usually the surface normal for surface particles or the particle velocity vector for simulation particles.

Align to Path

Aligns the particle to its local motion vector.

Stretch Particles

This percentage controls the scale of particle stretching based on velocity. Values are additive to the base value, so a Stretch Particle value of 100% produces a particle that was stretched twice the length (200% altogether).

Automatic Texture Offset

Adds an offset to the hypertexture different for each particle so that each particle looks different.

Volume Shading

Blob Properties

Option

Description

Density

RGBA Gradient Input

Provides a means to define an input parameter in which to apply the following Color Gradient, determining the coloration of the resulting volume based on the chosen parameter. You can choose from a number of Input parameters specific to volumes and particles, such a Texture Value (Density), Distance, and Particle Velocity.

Color Gradient

This is an inline mini gradient editor allowing you to define gradient value keys easily without having to leave the basic Modo interface. Much in the same way a keyframe stores transform values for items, gradient keys store colors or values and softly attenuate between the defined key positions. Keys can be added by middle-clicking along the gradient and then with the click, the key can be dragged up or down adjusting the value at that position. The gradient bar directly underneath provides a visual reference to the values being generated by the gradient itself. In the Color gradient, pressing the color wheel icon allows precise input of color values using the standard Modo color picker. The defined colors are applied to the final volume based on the preceding 'RGBA Gradient Input' option.

Density

Specifies the thickness or opacity of the volume, controlling the apparent amount of particular matter that is visible. This is a multiplier of the base value defined in the material item. For density samples, see Material.

Falloff

Biases the fading of the volume from its most dense areas to its least dense areas. A falloff of 0% produces a solid volume representing the particle geometry shape, a value of 50% produces smooth fading between the thickest areas leaving the thin areas transparent, and a value of 100% doesn't produce any volume at all as the volume has been biased all the way toward the transparent end of the spectrum. When no density texture is applied, the falloff controls the attenuation from the center of the volume to its outermost radius.

Level

Changes the maximum density level of the overall volume as a multiplier of the original volume with 100% being the maximum. At a level setting of 50%, what would have originally been the 50% density value is the 100%, producing a smaller particle volume.

Density Gradient Input

Provides a means to define an input parameter in which to apply the following Density Gradient, determining the thickness of the resulting volume based on the chosen parameter. You can choose from a number of input parameters specific to volumes and particles, such as Texture Value (Density), Distance, and Particle Velocity.

Density Gradient

This is an inline mini gradient editor allowing you to define gradient value keys easily, without having to leave the basic Modo interface. Much in the same way, a keyframe stores transform values for items, gradient keys store values and softly attenuates between the defined key positions. Keys can be added by middle-clicking along the gradient and then clicking and dragging the key up or down, adjusting the value at that position. The gradient bar directly underneath provides a visual reference to the values being generated by the gradient itself. The defined values are applied to the final volume, based on the preceding Density Gradient Input option.

Hypertexture Amplitude

Determines the amplitude (intensity) of a volume density texture layer applied to the volume. The higher the value the more you see the effect of the density texture. It's similar in concept to displacement amplitude, but applies to volumes.

Hypertexture Scale

Changes the size of the hypertexture, it is the same things as changing the texture locator's Scale setting values.

Texture Effect

Hypertextures can be animated on particles to create billowing or dissipation effects. The goal of these effects is to add secondary animation to the particles, which is important for explosions and smoke. The various texture effects are:

None: Disables the Texture Effect.

Velocity Translate: moves the texture in the direction of the velocity vector.

Expand: the texture is scaled over time to give the impression that it expands.

Expand and Dissolve: like the previous effect, but with the addition of a dissolve effect so as the texture expands it also dissolves.

Pyroclastic: a boiling motion similar to hot gas swirling around within the volume, adding a realistic secondary motion. Good for smoke.

Effect Speed

Controls the speed at which the Texture Effect animates through the volume.

Sampling

Render Quality

Determines the overall render quality of the resulting volume. The options are Low, Med, High, Very High and Best. As the quality increases, render times increase as well.

Sampling Rate

This is like the render quality option but can be fine-tuned in case the render quality is not enough. Like all rates in Modo smaller means better, but also slower. Use it with caution, using a rate of 0.5 instead of 1.0 greatly improves the sampling quality, but also multiplies volume rendering time by 4.

Near Clip Distance

Modo starts integrating the volume densities at a fixed distance from the camera. This also controls the initial integration step, so very small values lead to long render times if the camera is inside the volume. Think of it as a windshield around the camera. In general, this value only needs to be adjusted when you are inside a volume, like when you fly through a cloud.

Shading

Use All Lights

By default, Modo uses all lights in the scene to compute the volume illumination. This can be very expensive however, if the scene has many lights, so that can be disabled.

Shading Light

When Use all Lights option is disabled, you can select which light or group of lights contribute to the volume's illumination. For information on creating group, see Groups Viewport.

Volumetric Shadows

When a light shines on a volume, the light is attenuated as it travels through the volume because of absorption. This is like self-shadowing on surfaces. For effects like smoke that don't need self shadowing, it is better to disable this option, as it saves on render time. Another way to optimize volumetric shadows is to use deep shadow maps on the lights, but that comes at the expense of precision and memory, though it can dramatically improve render times.

Shadow Quality

Volume self-shadowing is the most expensive effect to render, it has its own quality setting which is derived from the overall render quality. This is an important setting, as it usually plays a big role in controlling volume aliasing.

Note:  For very faint volumes it is not necessary to use a high shadow quality as the shadows are not really visible.

Shadow Opacity

Volume self shadowing also depends on the volume opacity (how much absorption is going on), this number can be tweaked with that setting to change the look of shadows without changing the overall volume opacity.

Scattering

This is the overall scattering amount on the item, this is similar to the volume scattering amount in the material. This is a multiplier of the base value defined in the material item. For density samples, see Material.

Forward Scattering

Light scattering usually scatters more strongly in the forward direction, that's why clouds are brighter when the light comes behind the cloud. This control allows you to tweak this behavior.

Ambient

Volume items have their own ambient lighting settings to approximate multiple scattering effects that naturally happen inside clouds: when a photon scatters inside a cloud it actually bounces many times before it reaches the viewer, each bounce adding more scattering. This effect is called multiple scattering, it is the equivalent of global illumination for surfaces. So one way to approximate it is to use a global ambient light setting, it is a crude approximation, but it looks correct for most volume renderings.

Ambient Color

When using an Ambient value above 0, the Ambient Color determines the actual color value that contributes to the added ambient calculations, affecting the overall volumes color.