Raytracer
A Custom raytracing engine in C++ developed from scratch, with little to no references.
Introduction
I built a Raytracer from scratch in C++, utilising a custom designed multi-thread architecture. I hand derived all the ray-tracing formulas using nothing but high-school level math.
Coordinate System:
- X is front/back
- Y is sideways
- Z is up/down
Objects implemented (Position X/Y/Z):
- Sphere (Rotation on Z axis, Radius, Texture map, Normal map, Specular map)
- Point Lighting (Brightness)
- Camera (Focal Length, Camera Width, Camera Height)
Image:
- 1 Channel (for Grayscale, specular map)
- 3 Channel (for Texture map, Normal map)
- 4 Channel (for Texture map)
Input/Output:
- .ppm
Gallery:
Where to find:
Code: Github
Explanation: Blog