CutoutVolume

Overview

The CutoutVolume allows us to define a volume that should not be visible from the camera, but that should still contribute to indirect illumination. This could be helpful if you wish to render volumes separately in order to combine them in compositing.

For example, let’s say we have a hard-surface box and a cloud volume.

Cutout Volume Example1

In order to isolate the box without entirely removing the cloud’s indirect contribution, use a CutoutVolume, like so:

AmorphousVolume("CloudVolume") {...}

CutoutVolume("CloudVolumeCutout") {
    ["indirect volume"] = AmorphousVolume("CloudVolume")
}
-- in the Layer, use "CloudVolumeCutout" instead of "CloudVolume"

Cutout Volume Example2


Attribute Reference

Volume attributes

surface_opacity_threshold

Float
default: 0.5

Accumulated opacity that's considered the 'surface' for computing surface position and Z

Volume Baking attributes

bake_divisions

Int
default: 100

Divide widest axis by this many divisions

bake_resolution_mode

Int enum
  0 = “default” (default)
  1 = “divisions”
  2 = “voxel size”

Method to specify grid resolution of baked density grid. Choices are:
  "default": For shaders that are bound to vdb volumes, use vdb resolution.
      For shaders that are bounds to mesh geometries use 100 divisions
  "divisions": Specify number of divisions.
  "voxel size": Specify voxel size.

bake_voxel_size

Float
default: 10.0

Size of voxel in world space

General attributes

indirect_volume

Volume
default: None

The volume to cutout / use for indirect illumination and occlusion. Cutout behavior is invoked for primary rays but secondary/indirect rays are processed normally.

label

String
default:

label used in light aovs