  
   gl_FragColor = vec4(color, 1.0);
   //gl_FragColor = vec4(n * 0.5 + 0.5, 1.0);
-  //gl_FragColor = vec4(VdotH, VdotH, VdotH, 1.0);
+  //gl_FragColor = vec4(NdotV, NdotV, NdotV, 1.0);
   //gl_FragColor = vec4(v_UV.rg, 0.0, 1.0);
 }

}

// F
// spectre version (why is it called ggx?  dunno)
vec3 FresnelSchlickGGX(PBRInfo pbrInputs)
{
	return pbrInputs.reflectance0 + (pbrInputs.reflectance90 - pbrInputs.reflectance0) * pow(clamp(1.0 - pbrInputs.VdotH, 0.0, 1.0), 5.0);
}

vec3 fresnelSchlick2(PBRInfo pbrInputs)
{
  return pbrInputs.reflectance0 + (pbrInputs.reflectance90 - pbrInputs.reflectance0) * pow(1.0 - pbrInputs.VdotH, 5.0);
}

vec3 fresnelSchlick(PBRInfo pbrInputs)



  vec3 F = fresnelSchlick2(pbrInputs);
  //vec3 F = fresnelSchlick(pbrInputs);
  //float G = microfacetCookTorrance(pbrInputs);
  //float G = microfacetSmith(pbrInputs);
  //float G = microfacetSchlick(pbrInputs);
  float G = SmithVisibilityGGX(pbrInputs);
  float D = GGX(pbrInputs);

  vec3 specContrib = M_PI * u_LightColor * F * G * D / 4.0*NdotL*NdotV;

