PBR Shader
C++ / OpenGL / GLSL / QT
For my graduate-level graphics course CIS 4610: Advanced Rendering, I implemented an OpenGL Shader that handles a microfacet BSDF material model with metallic/plastic BRDFs and pre-computed diffuse/glossy irradiance.
My responsibilities included:
-
Microfacet BSDF
-
Implemented microfacet material via a weighted average of the Cook-Torrance BRDF (used for glossy reflection) and Lambertian BRDF (used for diffuse reflection).
-
-
Diffuse Irradiance
-
Precomputed a diffuse irradiance map by taking samples of an environment cube map across the set of directions within the hemisphere aligned with the input surface normal .
-
-
Glossy Irradiance
-
Precomputed a glossy irradiance map by taking samples of an environment cube map via importance sampling based on the GGX normal distribution function.
-
-
Normal and Displacement Mapping