Basic raytracer written completely in Rust.
To do:
- Make camera rotate with quaternion around stable axis (without roll)
- Increase efficiency of polygon hit calculation
- Normals for vertices, interpolate normal for polygon
- Add precompute function for shape to speed up rendering
- Basic Bounded Volume Hierarchy
- Replace Rayon for multithreading
- Improve BVH - https://jacco.ompf2.com/2022/04/13/how-to-build-a-bvh-part-1-basics/
- SIMD for BVH - Research and implementation
- Complete basic shader for Physically Based Rendering
- Multiple Importance Sampling - http://shihchinw.github.io/2015/06/implementing-ggx-brdf-in-arnold-with-multiple-importance-sampling.html
- Consider definitive image and display pipeline
- Transform linear color space to sRGB in final image
- Extend / rewrite world::parser to accept all .obj / .mtl files, and support textures for materials
- Extend materials to allow for texture maps