 			(2.0 * NdotH * NdotL) / VdotH));
 	float a = acos(NdotH);
 	float D = gauss * exp(-(a * a) / (roughness * roughness));
+	//float D = TrowbridgeReitz(roughness, NdotH);
 	float F = schlick_ior(ior, 1.0, VdotH);
 
 	return ((F * D * G) / (3.1417 * VdotH)) / 3.1417;

		G = geometric attenuation.
		F = fresnel coefficient.
	*/
	float NdotH = dot(N, H);
	float NdotV = dot(N, V);
	float VdotH = dot(V, H);
	float NdotL = dot(N, L);

	float gauss = 100.0;


	return schlick(F0, HdotV);
}

float TrowbridgeReitz(float a, float NdotH)
{
		float a2 = a * a;
		float pi = 3.1417;
		float denominator2 = ((NdotH * NdotH) * (a2 - 1.0) + 1.0);
		float denominator  = pi * (denominator2 * denominator2);
		
		return a2 / denominator;
}

float compute_spec(float ior, float roughness, vec3 H, vec3 L, vec3 N, vec3 V)
{
	/*
