I made a Monte Carlo Path Tracer in C++. I used PDFs to sample important places in the scene like the Sphere to make the caustic and the light to remove the Noise. I also made a PDF for lambertian surfaces.
- It loads 3D Objects
- It has BVH (Bounding Volume Hierarchies) for fast ray intersection testing. The boxes are aabb's (Axis Aligned Bounding Boxes).
- I made this Materials: (Isotropic, Lambertian, Metal and Dielectric).
- I made Texture Mapping. (2D Texturing).
- I made the Motion Blur.
- I made 3D Texturing with Perling Noise.
If you want to look into the Code: