Monte Carlo Path Tracer

By Fidel Yin
🏆 Highlight Submission

Features

Improvements

Rendered Images

Textured Materials

Comparing Parametric Materials

Metallic = 0.0Metallic = 0.5Metallic = 1.0
Roughness = 0.1
Roughness = 0.5
Roughness = 1.0

Comparing Samples Per Pixel (SPP)

SPP = 1SPP = 4SPP = 16
SPP = 64SPP = 256SPP = 1024

Acknowledgements

Libraries

Assets

Materials

Monte Carlo path tracing: https://sites.cs.ucsb.edu/~lingqi/teaching/resources/GAMES101_Lecture_15.pdf

Multiple Importance Sampling: https://computergraphics.stackexchange.com/questions/5152/progressive-path-tracing-with-explicit-light-sampling

Cook-Torrance BRDF: https://learnopengl.com/PBR/Theory

Cosine-weighted Importance Sampling: https://ameye.dev/notes/sampling-the-hemisphere/

Importance Sampling for GGX Distribution:

Möller–Trumbore intersection algorithm: https://en.wikipedia.org/wiki/M%C3%B6ller%E2%80%93Trumbore_intersection_algorithm

Normal Mapping: https://learnopengl.com/Advanced-Lighting/Normal-Mapping