Individual Project for Computer GraphicsCIS 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.