Volume

A renderable volume containing one or more volumetric data fields, used to represent a volume effect such as smoke or fire.

Volume inherits from GPrim and inherits GPrim and Imageable schema properties, so volumes are transformable, renderable, can have a material binding, etc.

Volume also contains any number of volumetric fields, specified via relationships to FieldBase-derived primitives using a namespace prefix of “field”. The relationship names, such as “density”, are used by the renderer to associate individual fields with the named input parameters on a volume shader.

For example, the following Volume defines a field relationship to an OpenVDBField asset. The field relationship name specifies that the OpenVDB asset contains data that the renderer and volume shader should use to render the optical density (“extinction”) of the volume.

def Volume "Volume" (
)
{
    custom rel field:extinction = </Volume/densityVDB>
    uniform token purpose = "render"

    def OpenVDBAsset "densityVDB"
    {
        token fieldName = "density"
        asset filePath = @/vdbdata/smoke_plume.101.vdb@,
        }
    }
}

See Working With Volumes for best practices when working with Volumes.

Properties

Inherited Properties (Gprim)

displayColor

USD type: color3f[]

displayOpacity

USD type: float[]

doubleSided

USD type: bool

Fallback value: False

orientation

USD type: token

Fallback value: rightHanded

Inherited Properties (Boundable)

extent

USD type: float3[]

Inherited Properties (Xformable)

xformOpOrder

USD type: token[]

Inherited Properties (Imageable)

proxyPrim

USD type: rel (relationship)

purpose

USD type: token

Fallback value: default

visibility

USD type: token

Fallback value: inherited