This is an implementation in Rust of Peter Shirley's "Ray Tracing In One Weekend" book. This is the first of the series:
- Ray tracing in one weekend, in Rust
- Ray tracing: the next week, in Rust
- Ray tracing: the rest of your life, in Rust
Every tagged commit is the code that generates a specific image. In this way it's easy to follow the progress in the book.
First git clone
this project. Then you can checkout a tag
to retrieve the implementation at a specific chapter in the book.
For example, with git checkout tags/chapter_08.2
you get the implementation for the second image of chapter 8.
With git checkout master
you go back to the latest version.
Instead of implementing my own vec3
, I preferred using Vector3
from nalgebra
crate.
For random numbers I used rand
.
Hence dependencies are:
You can go on with my Rust implementation for the second book, "Ray tracing: the next week, in Rust".
- I easily made the main loop parallel with the
rayon
crate. Just make sure that Traits are markedSync
and then it's just a matter of using aninto_par_iter()
iterator.