Volumetric Rendering Wedges

a slice of a wisp wedge that shows millions of little dots in a cluster
This is a slice from the wisp wedge showing different possible parameters for rendering a wisp volume.

For my spring 2025 CPSC8190: Physically Based Effects class with Dr. Jerry Tessendorf, I developed wedges of different types of noise-based techniques and rendered them using a raymarcher utilizing the scattering light model. The code to do this was written completely in C++, and it uses the OpenImageIO and OpenEXR libraries to save the render as an EXR image.

Code

Dr. Tessendorf provided us with a starter kit that I was able to build on to to create a wide toolset for volumetric rendering. The starter code included classes for foundational concepts needed for further implementation such as vectors, scalar fields, and shared pointers. From there I was responsible for implementing a ray marching renderer and classes for all of the concepts taught in the class.

The full code can be found on my github repo.

Pyroclastic Displacement

Wisps

Stamped Noise