 vec4 getImportanceSample(int sampleIndex, vec3 N, float roughness)
 {
     // generate a quasi monte carlo point in the unit square [0.1)^2
-    vec2 hammersleyPoint = hammersley2d(sampleIndex, u_sampleCount);
-    float u = hammersleyPoint.x;
-    float v = hammersleyPoint.y;
+    vec2 xi = hammersley2d(sampleIndex, u_sampleCount);
+    float u = xi.x;
+    float v = xi.y;
 
     // declare importance sample parameters
     float phi = 0.0; // theoretically there could be a distribution that defines phi differently

    mat3 TBN = generateTBN(N);
    vec3 direction = TBN * localSpaceDirection;

    if(u_distribution == cGGX || u_distribution == cCharlie)
    {
        pdf = PDF(direction, N, roughness);
    }

float PDF(vec3 H, vec3 N, float roughness)
{
    float NdotH = dot(N, H);

    if(u_distribution == cCharlie)
    {
        float D = D_Charlie(roughness, NdotH);
        return max(D, 0.0);
