Examples_3/Visibility_Buffer/src/Shaders/FSL/shading.h
float Vis_SmithJointApprox(float a2, float NoV, float NoL)
{
	float a = sqrt(a2);
	float Vis_SmithV = NoL * (NoV * (1.0f - a) + a);
	float Vis_SmithL = NoV * (NoL * (1.0f - a) + a);
	return 0.5 * rcp(max(Vis_SmithV + Vis_SmithL, 0.001));
}
// Appoximation of joint Smith term for GGX
// [Heitz 2014, "Understanding the Masking-Shadowing Function in Microfacet-Based BRDFs"]
Appoximation of joint Smith term for GGX
[Heitz 2014, "Understanding the Masking-Shadowing Function in Microfacet-Based BRDFs"]
Appoximation of joint Smith term for GGX [ Heitz 2014 " Understanding the Masking - Shadowing Function in Microfacet - Based BRDFs " ]
float Vis_SmithJointApprox(float a2, float NoV, float NoL)
{
	float a = sqrt(a2);
	float Vis_SmithV = NoL * (NoV * (1.0f - a) + a);
	float Vis_SmithL = NoV * (NoL * (1.0f - a) + a);
	return 0.5 * rcp(max(Vis_SmithV + Vis_SmithL, 0.001));
}
float Vis_SmithJointApprox ( float a2 , float NoV , float NoL ) { float a = sqrt ( a2 ) ; float Vis_SmithV = NoL * ( NoV * ( 1.0f - a ) + a ) ; float Vis_SmithL = NoV * ( NoL * ( 1.0f - a ) + a ) ; return 0.5 * rcp ( max ( Vis_SmithV + Vis_SmithL , 0.001 ) ) ; }
Appoximation of joint Smith term for GGX
[Heitz 2014, "Understanding the Masking-Shadowing Function in Microfacet-Based BRDFs"]
Appoximation of joint Smith term for GGX [ Heitz 2014 " Understanding the Masking - Shadowing Function in Microfacet - Based BRDFs " ]