This repo contains the result of me working through the book, "The Ray Tracer Challenge: A Test Driven Guide to Your First 3D Renderer" by Jamis Buck.
This is complete up through the end of the book. The rest will be stuff I want to add (see the to-do lists below).
The following are improvements I want to make. Most of the ones relating to patterns come from the "Putting It Together" section of chapter 10, plus some things that POVRay has that I want to add. Once an item is checked, you can assume it's done.
- Add a "cheesy" file parser to get things going in that direction.
- Add lots of named colors.
- Add a named set of direction vectors.
- Add a named set of indices of refraction.
- Motion blur.
- Antialiasing.
- Support PNGs.
- Support other image formats.
- Area lights/soft shadows.
- Spotlights.
- Focal blur.
- Texture mapping.
- Normal perturbation.
- Torus.
- Other surfaces (Height fields, SORs, etc.)
- Add a radial gradient color source.
- Update all color sources to use nested color sources.
- Add a perturbing noise function to all color sources.
- Add a blending color source.
- Add a color map color source ala POVRay.
- Add a cyclical flag to the gradient color sources (start over vs bounce back).
- Update the linear gradient to do multiples, similar to how most graphics engines handle dash patterns. POVRay has this, too.
- Add a flag that will opt a surface out of shadow consideration; i.e., the surface does not cast a shadow.
- Move to the Lex port, when available.
- Support loops for object graph construction.
- Support variables for easier surface reuse, among other things.
More to come...