 #endif
 		float Dr = GTR1(cNdotH, mix(.1, .001, clearcoat_gloss));
 		float Fr = mix(.04, 1.0, cLdotH5);
-		float Gr = G1V(cNdotL, .25) * G1V(cNdotV, .25);
+		float Gr = G_GGX_2cos(cNdotL, .25) * G_GGX_2cos(cNdotV, .25);
 
 
 		specular_light += .25*clearcoat*Gr*Fr*Dr;

		float ay = ry*ry;
		float XdotH = dot( T, H );
		float YdotH = dot( B, H );
		float denom = XdotH*XdotH / (ax*ax) + YdotH*YdotH / (ay*ay) + cNdotH*cNdotH;
		float D = 1.0 / ( M_PI * ax*ay * denom*denom );

#else
		float alphaSqr = alpha * alpha;
		float denom = cNdotH * cNdotH * (alphaSqr - 1.0) + 1.0;
		float D = alphaSqr / (M_PI * denom * denom);
#endif
		// F
		float F0 = 1.0; // FIXME
		float cLdotH5 = SchlickFresnel(cLdotH);
		float F = mix(cLdotH5, 1.0, F0);

		// V
		float k = alpha / 2.0f;
		float vis = G1V(cNdotL, k) * G1V(cNdotV, k);

		float speci = cNdotL * D * F * vis;

		specular_light += speci * light_color * specular_blob_intensity * attenuation;
#endif

#if defined(LIGHT_USE_CLEARCOAT)


#elif defined(SPECULAR_SCHLICK_GGX)
		// shlick+ggx as default

		vec3 H = normalize(V + L);

