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