     // 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;
 }


    if(u_distribution == cCharlie)
    {
        float D = D_Charlie(roughness, NdotH);
        return max(D, 0.0);
    }



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