- Using ADT (vector, dequeue, stacks)
- Class heirarchy with interfaces and inheritace
- Enlarge supported objects
- Smart object pointers
- Optimal computations using built-in algorithms and templates
- Implement reflections and transparency
- (?) OpenCL
Raytracing project built upon minilibx library for CPU-computation. Ray tracing is a rendering technique that can realistically simulate the lighting of a scene and its objects by rendering physically accurate reflections, refractions, shadows, and indirect lighting. Ray tracing generates computer graphics images by tracing the path of light from the view camera (which determines your view into the scene), through the 2D viewing plane (pixel plane), out into the 3D scene, and back to the light sources. As it traverses the scene, the light may reflect from one object to another (causing reflections), be blocked by objects (causing shadows), or pass through transparent or semi-transparent objects (causing refractions)
- Multithreaded render
- Dymaic camera (movement and rotation)
- Blinn–Phong reflection model
- Object shadows
- Generating BMP image
- Spheres
- Cylinders
- Disks
- Squares
- Triangles