Volumes

Volumes

A Simple Heterogeneous Volume

images/volumecornell.png

Smoke

This scene demonstrates rendering of a heterogeneous volume using path tracing. The maximum ray depth is set to 3. With the multiScatter parameter left at its default value of 0, all indirect illumination rays in this scene originate from an interaction with the Cornell box, not the volume. Hence, this scene does not demonstrate indirect illumination of the volume itself: there is no multiple scattering inside the volume. Every indirect ray scattered by a surface does however perform integration of single scattered light through the volume.

The volume density is controlled by the Density parameters of PxrVolume, which use primvars to map the density grid from the OpenVDB file.

Note, this file uses the included OpenVDB plugin, impl_openvdb.so.


Soho

images/soho.png

This scene demonstrates rendering of a homogeneous volume with full multiple scattering in a complicated lighting scenario. The neon sign - a Geometric Area Light source (emissive geometry) - is the only light source in the scene. The volume encloses all geometry in the scene, including the light and the camera.


Fire!

images/firecornell.png

Where there's smoke...

This scene demonstrates rendering of an emissive volume using path tracing; there is no light source in the scene. All illumination is therefore acquired via indirect sampling by the path tracing integrator (note that numLightSamples and numBxdfSamples are 0).

The emissive color of the volume is controlled by a SeExpr expression which takes as input the temperature data from the OpenVDB file. The density of the volume is controlled by the Density parameters of PxrVolume.

Note, this file uses the included OpenVDB plugin, impl_openvdb.so.