 	{
 		for(float j = -filterWidth; j < filterWidth; j += stepSize)
 		{
-			float shadowDistance = textureCube(u_ShadowMap, I + right * i + up * j).SWIZ1;
+			float shadowDistance = textureCube(u_ShadowMap, I.xyz + right * i + up * j).SWIZ1;
 
 			if(vertexDistance > shadowDistance)
 			{

			// rand.z = 0;
			// rand = normalize(rand) * filterWidth;

			moments += FetchShadowMoments(I + right * rand.x + up * rand.y);
		}
	}
#endif

}

#if defined(r_PCFSamples)
vec4 PCF(vec4 I, float filterWidth, float samples)
{
	vec3 forward, right, up;

	forward = normalize(I.xyz);
	MakeNormalVectors(forward, right, up);

	vec4 moments = vec4(0.0, 0.0, 0.0, 0.0);
