Skip to content

Latest commit

 

History

History
41 lines (30 loc) · 1.73 KB

README.md

File metadata and controls

41 lines (30 loc) · 1.73 KB

Mini-Ray-Tracer

Mini Ray Tracer is a 3D-graphics renderer that synthesizes a photorealistic snapshot of a scene, individually tracing the path of each ray from the observer's perspective. It is a working console application where the input is a description of the 3-dimensional scene and the output is a PNG image.

This self-proposed project was created to fulfill one of the requirements of the course COMP 2012H Fall 2019 in HKUST. Implementation and algorithm behind the project were explained in the following presentation: https://drive.google.com/file/d/1gIxRG7IrHpc7Z-HVAODMjoI7Siqgfa7-/view?usp=sharing.

Running the tests

To run the tests it is needed to set up the 3D scene in the console by adding the spheres, AABB (axis-aligned bounding boxes) of different materials: lambertian, metal and dielectric.

Depending on the shape, material of the objects, position of a "camera" (source of the light beams) which are default or set by the user, there will be different output images.

Test images

Picture1

Final resolution: 1200x800
Anti-aliasing level: 100
Reflection depth: 5
Finished in 2821.56s

Picture2

Final resolution: 800x600
Anti-aliasing level: 50
Reflection depth: 5
Finished in 879.54s

Picture3

Final resolution: 800x400
Anti-aliasing level: 100
Reflection depth: 5
Finished in 125.77s

Acknowledgments

The project was inspired by the Ray Tracing book series by Peter Shirley.