#This document is a WIP
This document is still a work in progress.
So far, this raytracer has the following abilities:
-
You can add shapes like spheres, Axis Aligned Bounding Boxes(AABBs), discs or planes in your scene. Add a new object in initializeObjects() method inside main.cpp.
-
You can add two types of lights, point lights and directional lights. You can have as many lights as you want in the scene. Add a new light in initializeLights() method inside main.cpp.
-
The camera is modeled as a perspective camera, so you can change its position and lookat.
-
Anti-aliasing is disabled by default. To enable anti-aliasing, use useSampling method of the Camera class.
-
Triangle shape has been added.
-
Now you can create multiple test scenes and have objects particular to a scene. Previously, objects container was static and multiple scenes were not allowed. A scene has width, height, camera, objects and lights.
-
Transformations work. You can rotate, scale and translate objects.
-
Depth of field works.
-
Specular shading has been added. Remember: Specular coeff + diffuse coeff + ambience + reflectivity must be equal to 1.