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:
Interface | Description |
---|---|
RED::IVolumeShape | API dedicated to the setup of volumetric effects. |
RED::IShape | Global shape API. Controls shape tree navigation and shape attributes. |
RED::IUserData | User data API to store application custom data associated to a shape. |
RED::IChunkSaver | Shape serialization interface. |
RED::IReferenceSolving | Shape 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:
- RED::IVolumeShape::SetRayMarchingStep: defines the distance between two samples. The smaller the distance, the better the resulting quality. Of course, this parameter has a significant impact on performances.
- RED::IVolumeShape::SetScatteringSamples: defines the number of samples taken for the calculation of scattering effects. Of course more samples mean a better resulting quality and a corresponding rendering time.
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:
- RED::VolumetricEffectLightVolume: Define a volumetric effect in the effect area of a light source. Useful for light shafts.
- RED::VolumetricEffectBoxVolume: Specify a volumetric effect in a limited region of space. Surprisingly, a box.
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.
![]() | Text shapes![]() |