     // Typically you'd have the following:
     // float pdf = D_GGX(NoH, roughness) * NoH / (4.0 * VoH);
     // but since V = N => VoH == NoH
-    ggx.probability  = D_GGX(ggx.cosTheta, roughness) / 4.0 + 0.001;
+    ggx.pdf  = D_GGX(ggx.cosTheta, roughness) / 4.0 + 0.001;
 
     return ggx;
 }


// GGX microfacet distribution
// https://www.cs.cornell.edu/~srm/publications/EGSR07-btdf.html
MicrofacetDistributionSample GGX(vec2 xi, float roughness)
{
    MicrofacetDistributionSample ggx;


struct MicrofacetDistributionSample
{
    float pdf;
    float cosTheta;
    float sinTheta;
    float phi;
