 	return 0.f;
 }
 
-// getSampleVector returns an importance sample direction with pdf in the .w component
-vec4 getSampleVector(int sampleIndex, vec3 N, float roughness)
+// getImportanceSample returns an importance sample direction with pdf in the .w component
+vec4 getImportanceSample(int sampleIndex, vec3 N, float roughness)
 {
     vec2 hammersleyPoint = hammersley2d(sampleIndex, u_sampleCount);
     float u = hammersleyPoint.x;

	for(int i = 0; i < u_sampleCount; ++i)
	{
		// Importance sampling, depending on the distribution.
		vec3 H = getSampleVector(i, N, roughness).xyz;
		vec3 L = normalize(reflect(-V, H));

		float NdotL = saturate(L.z);


	for(int i = 0; i < u_sampleCount; ++i)
	{
        vec4 importanceSample = getImportanceSample(i, N, u_roughness);

		vec3 H = vec3(importanceSample.xyz);
        float pdf = importanceSample.w;
