1 //! Calculates Cook-Torrance BRDF.
2 vec3 occPBRCookTorrance (in vec3 theView,
10 vec3 aHalf = normalize (theView + theLight);
11 float aCosV = max(dot(theView, theNormal), 0.0);
12 float aCosL = max(dot(theLight, theNormal), 0.0);
13 float aCosH = max(dot(aHalf, theNormal), 0.0);
14 float aCosVH = max(dot(aHalf, theView), 0.0);
15 vec3 aCookTorrance = occPBRDistribution (aCosH, theRoughness)
16 * occPBRGeometry (aCosV, aCosL, theRoughness)
17 * occPBRFresnel (theBaseColor, theMetallic, theIOR, aCosVH);