A simple ray tracer with a controllable camera.
>>> make build
>>> ./raytracer
Esc- QuitW,A,S,D- Move forward, backward, left, rightSpace,LShift- Move up, down←,→- Rotate left, rightP- Take a screenshot (saved toout.png) and quit
- Moveable camera (translation, rotation)
- Accumulation - one sample per pixel per frame, image quality improves over time
- Materials - diffuse (lambertian), metal, glass (dielectric), light source
- Geometry - spheres only
- Texture - solid colour, image texture
- Support window resize
- Figure out why multi-threading is making code slower instead of faster
- Mouse-controlled camera rotation
- Depth of field (camera focus)
- Rectangles and cuboids
- Axis aligned bounding box (AABB)
- Object file loading
- Mist (participating media)
- Perlin noise texture
- Anti-aliasing
- ImGui to edit scene during runtime
