Volumetric shapes

REDsdk supports volumetric effects. Volumetric effects have no mesh representation and are only drawn dynamically during the software ray-tracing of an image. Volumetric effects have no default GPU representation, and therefore are ignored for the GPU rendering of a frame.

REDsdk has a scene graph shape for the representation of volumetric effects. It's created using the CID_REDVolumeShape identifier and the created object implements the following interfaces:

RED::IVolumeShapeAPI dedicated to the setup of volumetric effects.
RED::IShapeGlobal shape API. Controls shape tree navigation and shape attributes.
RED::IUserDataUser data API to store application custom data associated to a shape.
RED::IChunkSaverShape serialization interface.
RED::IReferenceSolvingShape serialization interface.

A volumetric shape that implements the RED::IVolumeShape interface uses a number of RED::VolumetricEffect objects to produce a visible effect in the generated image. All the volumetric effects to consider in a scene graph should be gathered in a single volume shape.

The RED::VolumetricEffect and its derived classes are in charge of the definition of the type of medium that is to be rendered by the software ray-tracer. However, the quality and performance of the sampling is defined at the RED::IVolumeShape interface level:

More details on rendering with volumes can be found following the related links on the right side of this page.

Built-in light volumes

REDsdk offers two built-in volumetric effects:

Custom volumetric effects

User defined volumetric effects can be defined and used in a REDsdk application. These should be made by inheriting from the RED::VolumetricEffect class. All details can be found in the tutorial linked here: Defining a custom volumetric effect.