light2d-rs icon indicating copy to clipboard operation
light2d-rs copied to clipboard

Render light with Rust

light2d-rs

Light rendering in 2D with Rust

This project is inspired by miloyip's Render light with C series (Chinese) and follows his idea generally, but I made some changes:

  1. Used rayon to run tracing in parallel.
  2. Replaced ray marching with ray tracing to reduce the time complexity. (You can still find the ray marching version at the master branch.)
  3. Applied the Beer-Lambert law for paths inside media only.

Examples