Rayone (from French "Rayon") is a simple global illumination renderer that uses Monte Carlo techniques such as importance sampling, rejection sampling, and variance reduction to render simple scenes (e.g. Cornell Box). This path tracer is being developed using David Beason's smallpt as a starting point while remotely following the course ECSE 689 Realistic Image Synthesis by D. Nowrouzezahrai (McGill University, Fall 2016) and reading Physically Based Rendering by M. Pharr and G. Humphreys.
- Global illumination via unbiased Monte Carlo path tracing
- Modular code
- Multithreading using OpenMP
- Soft shadows from diffuse luminaire
- Diffuse and specular BRDFs
- Antialiasing
- Ray-sphere intersection
- Cosine-weighted hemispherical importance sampling for diffuse reflection
- Phong cosine-power hemispherical importance sampling for specular reflection
- Russian roulette for path termination
- Refractive BRDF
- Ray-triangle intersection
- Motion blur
- Volumetric single scattering
- Environment map importance sampling
- Photon mapping
- Cannot retrieve radius of
Sphere
for ray hit since the scene is aShape
vector