float ModifiedKelemenGeometricShadowingFunction (float NdotV, float NdotL, float roughness) { float c = 0.797884560802865; // c = sqrt(2 / Pi) float k = roughness * roughness * c; float gH = NdotV * k +(1-k); return (gH * gH * NdotL); }