float GaussianNormalDistribution(float roughness, float NdotH) { float roughnessSqr = roughness*roughness; float thetaH = acos(NdotH); return exp(-thetaH*thetaH/roughnessSqr); }