Volumetric Renderer

Individual Project for Computer Graphics

CIS 460   September 2013

Coded in C++. This project made use of a voxel buffer and ray marching from the camera into the scene. Each ray march from the eye calculates the color of that pixel by accumulating the transmittance of each voxel it hits. The voxel's transmittance is computed by sending a secondary ray march to the lights in the scene. I implemented trilinear interpolation to decrease the size of voxel buffer without decreasing quality. The program allows users to configure the scene with spheres, clouds, pyroclastics, and cubes clouds using perlin noise, which it then renders. My volumetric renderer also handles multiple lights, as well as batch rendering.