I am a Global Illumination renderer using path tracing written by Nidin Vinayakan in Typescript/Javascript.
Rendering algorithm is ported from Go implementation written by Michael Fogleman
##Disclaimer: Currently it only works with Firefox Nightly since multi-threading relying on SharedArrayBuffer.
- Supports OBJ
- Supports textures, bump maps and normal maps
- Uses k-d trees to accelerate ray intersection tests
- Supports various material properties
- Light sources with configurable attenuation
- Supports configurable depth of field
- Supports iterative rendering
- Uses all CPU cores in parallel
Here are things that I'm planning, or at least hoping, to do.
- Shared scene
- Binary STL and ASCII STL Loader
- Subsurface scattering
- Atmosphere
- Constructive solid geometry
- Animation support?
Here are some resources that I have found useful.
- WebGL Path Tracing - Evan Wallace
- Global Illumination in a Nutshell
- Simple Path Tracing - Iñigo Quilez
- Realistic Raytracing - Zack Waters
- Reflections and Refractions in Ray Tracing - Bram de Greve
- Better Sampling - Rory Driscoll
- Ray Tracing for Global Illumination - Nelson Max at UC Davis
- Physically Based Rendering - Matt Pharr, Greg Humphreys