raytracer/README

28 lines
1.1 KiB
Plaintext

A raytracer that will render to any ANSI terminal with support for 24-bit
colours, at least 80x24 big.
Build with `make' and run the resulting binary in `/bin'.
The raytracer implements the following:
- Planes, spheres, and point lights
- Reflection
- IOR-based refraction
- Cook-Torrance BRDF (a few other models are left in the code)
- Primitive object materials
You can move around with WASD and SPC/Z; zoom with I/O, change the exposure with
+/-, and quit with Q.
The image output is a 24-bit coloured 80x24 (by default, tweakable in
`main.cpp'), 2x supersampled. The output uses Unicode characters and differently
coloured foreground and background to effectively double the output resolution.
You can read the implementation in `buffer.cpp'.
The raytracing loop is parallelised using an OpenMP pragma, which should be well
supported on most systems. You can just comment out the pragma (and remove the
omp flag from the Makefile) to remove parallelisation.
Although the code isn't particularly documented, most functions have a docstring
in their respective header files. Most fun things to play around with are
located in `main.cpp'.