A small ray-tracing project written in Rust. Inspired by the Ray Tracing in One Weekend series. Go check them out!
Run an example from the examples/
directory using Cargo to render a .png file in your current directory:
cargo run --example <example_name>
- Basic image generation using .ppm files
- Simple camera and rays
- Adding spheres
- Calculating collisions between rays and generic list of objects (the world)
- Basic shading
- Anti-aliasing (stochastic sampling)
- Materials (Lambertian/Diffuse, Metal, Dielectrics)
- Defocus blur
- Moveable camera
- Motion blur (moving objects)
- Bounding volume hierarchies
- Perlin (and Voronoi?) noise
- Additional shapes
- Light sources
- Light scattering