Physically-Based Volumetric Renderer

Pyroclastic Sphere Wedge

Project Overview

I developed a physically-accurate volumetric rendering system in C++ for creating visual effects commonly used in feature film production. The pipeline utilizes a ray marching algorithm to evaluate implicit volumes and deep shadow maps, generating realistic atmospheric effects including noise clouds, pyroclastic volumes, wisps, terrain elements, and level sets.

Technologies: C++, OpenImageIO, OpenEXR, SWIG

Technical Implementation

The rendering pipeline utilizes a multithreaded ray marching approach with physically-based scattering and shadowing models. Key technical components include:

  • Flexible rendering: Users can render within a sparse grid for bounded rendering or utilize unbounded volume evaluation depending on production requirements.

  • Dual ray marcher architecture: Separate ray marchers to evaluate deep shadow maps and render volumetric features, enabling physically-accurate light with shadow and scattering properties.

  • Adaptive step-size optimization: Dynamic step adjustment to balance performance optimization with rendering quality