Skip to content

Commit

Permalink
Added Sobol sequence and filter
Browse files Browse the repository at this point in the history
  • Loading branch information
scott223 committed Nov 25, 2023
1 parent 4e0614d commit eb688f3
Showing 1 changed file with 21 additions and 5 deletions.
26 changes: 21 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,20 +7,36 @@
Simple Raytracer for simple 3D scenes, made in Rust. Objective is to learn Rust, not make a very good raytracer.

## Ray tracing features
- monte carlo based, pixel by pixel raytracing with stochastic anti aliasing
- weigthed importance sampling
- Monte Xarlo based, pixel by pixel raytracer with anti aliasing using Sobol sequence and specific filter algorithm
- weigthed importance sampling using Probability Distribution Functions and attractors (e.g. lights)
- various primitives (triangle, quad, sphere)
- various materials (Lambertian, Metal, Glass, ...)
- Bounded Hierarchy Volumes (BHV) tree to accelerate intersection tracing
- parallel multi-threaded rendering
- Bounded Hierarchy Volumes (BHV) tree, constructed using Surface Area Heuristic (SAH), to accelerate intersection tracing
- parallel multi-threaded rendering using Rayon
- shadow acne prevention
- gamma correction
- configurable depth of focus
- scene and configuration input from JSON
- ...

## todo's
- jittering sampling
- adaptive sampling
- BRDF materials

## Rust learnings applied
- modules, imports, external crates
- borrow, explicit lifetimes
- custom types
- methods, enums, structs
- generic methods
- Traits
- iterators, match statement
- Result, Error, Option
- reading files, saving files
- logging, .env
- tests, benchmarking, flamegraph
- VSCode debugger, breakpoints and memory inspector
- Git(hub)

## Credits / references
- Raytracing in One Weekend (https://raytracing.github.io/books/RayTracingInOneWeekend.html)
Expand Down

0 comments on commit eb688f3

Please sign in to comment.