Skip to content

This library uses RayTracing methods to render a 3D scene, which are composed of a camera, lights, and objects (spheres).

License

Notifications You must be signed in to change notification settings

Leo-Besancon/Rust-RayTracer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RayTracer

This library uses RayTracing methods to render a 3D scene, which are composed of a camera, lights, and objects (spheres).

This project contains:

  • A Rust library crate in /src/lib.rs
  • A Rust binary crate in /src/main.rs in order to present how to use the library. It defines a default scene, with spheres, a camera, lighting and a rendering configuration.
  • Documentation
  • Tests

Some implemented features:

  • Indirect lighting and smooth shadows
  • Diffuse, Reflective and Refractive and Hybrid (Phong BRDF) material handling
  • Anti-aliasing and Monte Carlo noise-reducing
  • Multi-threading with the rayon crate
  • Object, camera and lights animations

To run, please use the following command lines:

cargo run
cargo test
cargo doc --open

Example render:

Note: This project is a spinoff of my C++ RayTracing project. Don't hesitate to go through this repository for additional features I have not ported to Rust yet, such as Mesh rendering, as well as procedural and UV textures handling.

About

This library uses RayTracing methods to render a 3D scene, which are composed of a camera, lights, and objects (spheres).

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages