A very simple Ray Tracer implemented with Python.
- Handles the input file keywords png, color, sphere, and one sun, with proper handling of sRGB gamma.
- Implements the ray-sphere intersection algorithm.
- Implement shadows with shadow rays, including preventing shadow acne.
- Exposure control
- Multiple light sources (suns) and shadows
- Move and rotates the camera
- Fisheye and panoramic cameras
- Plane-intersection
- Triangle-intersection
- Texture mapping
- Animation
- IOR and refraction
- Anti-aliasing
- DoF
- Global illumination
- BVH
python main.py <input_file>
# Example
python main.py raytracer-files/ray-sphere.txt
Below is a list of implemented input files. Or run bash batch_test.sh
to test all of them.
sphere
sun
color
overlap
behind
shadow-basic
expose1
expose2
suns
shadow-suns