This is a tiny renderer based on three famous books. We use .ppm, a pixel map format to generate images.
- vec3: a simple way to express colors, locations and directions
- ray: shooting from one point to another
- camera: a positionable camera, allowing one to change its focus
- hitable: an object that can be hit by a ray and returns hit infomation
- hitable_list: store various hitables
- sphere: a sphere hitable object
- material: descibes how light reflects, scatters and refracts
- lambertian: light reflects in all directions
- metal: light obeys standard reflection
- dielectric: light is allowed to refract
- support calculating the process when light hits a hitbale object
- antialising: by rasing sample rate ro denoise
- support three ways to deal with light by changing the material of a hitable
- defoucus blur: by changing the depth of field
- motion blur