RayTracer in C++/Qt
Simple raytracer. It can draw quadrics and polygonal models, do basic constructive solid geometry operations on the objects (union, intersection, difference and clipping by a plane), supports adaptive supersampling, recursion, reflection, refraction, soft shadows and blurry reflections and refractions through the use of distributed raytracing. It has a simple GUI which can be used to create or modify a simple scene which can consist of a number of lights, materials and objects. Scenes can be saved to files and then loaded back into the program. The camera can be freely moved in the scene by keyboard and mouse from a first person view, subsampling during movement allows for smooth movement through the scene.