Yet Another Rust Path Tracer
This is a path tracing program I wrote in Rust. I've written quite a few before, but with this one, I focused on more proper program structure and flow, and avoided any necessity for unsafe code. I'm pretty satisfied with the results so far, and I'll probably keep working on it for a bit.
Features:
- Basic primitive rendering.
- Transforms to allow full translation, rotation, and scale.
- Human-readable scene representation and loading.
- Light transport via path tracing for robust shadows, reflections, and global illumination.
- Depth of Field.
- Multithreading.
- Denoising via OpenImageDenoise.
- BVH Acceleration structures.
To-do:
- Triangle meshes.
- Edit
.cargo/config.toml
to point to a local installation of OpenImageDenoise. - In a console, use the command
cargo build
--release
flag recommended.
- Copy
OpenImageDenoise.dll
andtbb12.dll
from the OpenImageDenoisebin
folder into the folder with your built executable. - Play with the settings, run the renderer, and save rendered images!