My implementation of a physically based raytracer which utilizes a simple monte carlo approach to importance sampling using BxDFs.
This raytracer has support for the following:
- Lambertians
- Dielectrics
- Metals
- Emitters (Area and Point Lights, emissive materials)
- Texture Mapping
- Procedural Textures
- Instancing
- Constant Density Volumetrics
- Motion Blur
- Depth of Field
To improve performance of the raytracer, I utilized a Bounding Volume Hierarchy (BVH) to improve intersection testing efficiency.
Dependencies:
- stb: https:/nothings/stb
Ye olde Cornell Box rendered with a couple of diffuse cubes
My implementation of the typical approach to rendering the moon, using the Oren–Nayar reflectance model and some textures from NASSA
A marble sitting atop a floor textured with perlin noise, surrounded by volumetric fog