top of page

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

bottom of page