This is a ray tracing project for Principle and Practice of Computer Algorithms (CS1952) course. We followed the tutorial series Ray Tracing in One Weekend, and writed the code in Rust. To acquire extra points, I implemented several optimizations:
- Reduce Contention: only clone
Arcwhen creating a thread; changeArcinto reference in other places. - Static Dispatch: use generics to reduce extra expenses.
- Code Generation: use procedural macros in Rust to generate the scene code statically.
- Advanced Features: add support for
Tranform


