During the quarter, I developed a C++ raytracer to perform Monte Carlo Raytracing. During my development, I tried to achieve the following goals:
The raytracer performs simple 2-bounce Monte Carlo global illumination to gather indirect light. Local light contribution is calculated using basic Blinn-Phong lighting.
The raytracer supports hemisphere-mapped textures. Here, a grid has been applied to a ball.
Texture mapping is correctly applied on transformed objects. Here, the earth has been rotated, and the texture coordinates have been correctly transformed.
Reflection and refraction is also supported. The center ball is a reflective surface, as is the floor and ceiling. Multiple lights
provide interesting colors.
In the second image, Beers law is applied to color the rectangular prism.
The raytracer uses a BVH to accerate tracing, as well as multithreading to take advantage of systems with multiple threads. Running an anti-aliased render (640x480) on 4 threads (2.9 ghz dual core processer, multithreaded) with Dragon_huge_tris (Simple phong shading) takes 12.7 seconds.
Since it was easy to change the renderer of the raytracer, I was able to create a normals visualizer. This was very useful in debugging flipped triangles.
Andrew Acosta I created a VR theater environment to put the user of a headset on stage. Currently the demo is lacking sound, but the crowd is animated and will play several different animations randomly. I modeled the stage chairs, Credit to the sillouette model goes to Kayleigh Rago. Several assets in the scene are accreddited to Victor in the Classroom Asset Pack