A simple, homebrewed, CPU-powered path tracer. It's not meant to be good path tracer, It's meant to teach me Rust.
Movement: W A S D LShift Space
Orientation: Mouse
Zoom: Z X
Focus distance: J L
Aperture size: I M
Toggle autofocus: N
Toggle overlays: U
Toggle depth pass: Enter
- Bounding volume hierarchy
- Precomputed blue noise sample mask
- Cache optimization
- Micro optimizations
- Options menu
- Improved Bresenham implementation
- Possibly switch frame buffer implementation
- Spectral rendering
- Lens effects:
- Logitudinal achromatic / chromatic aberration
- Lateral chromatic aberration
- Spherical aberration
- Customizable bokeh shapes
- GPU post-processing effects:
- Bloom
- Scrambled Sobol
- Multiple importance sampling
- Bidirectional path tracing
- Refraction
- Metropolis light transport
- (Automatic parameter control)
- Customizable reflectance distribution functions
- Polygon support
- Translucency
- Subsurface Scattering
- Proper PBR implementation
- Textures
- Normal mapping