 
 	vec4 center_normals_y = vec4(normal_y_00.y, normal_y_10.x, normal_y_11.w, normal_y_01.z);
 
-	score *= vec4(g2(avg_normal_y - center_normals_y.x),
-	              g2(avg_normal_y - center_normals_y.y),
-	              g2(avg_normal_y - center_normals_y.z),
-	              g2(avg_normal_y - center_normals_y.w) );
+	score *= vec4(g1(avg_normal_y - center_normals_y.x),
+	              g1(avg_normal_y - center_normals_y.y),
+	              g1(avg_normal_y - center_normals_y.z),
+	              g1(avg_normal_y - center_normals_y.w) );
 
 	int max_index = 0;
 	if(score.y > score.x)

	vec4 arguments;
} pcs;

const ivec2 offsets[16] = ivec2[](
    ivec2( 0, 0),
    ivec2( 1, 0),
    ivec2(1, 1),
    ivec2(0, 1),

ivec2(-1, -1),
ivec2( 0, -1),
ivec2( 1, -1),
ivec2( 2, -1),

ivec2(-1, 0),
ivec2( 2, 0),
ivec2(-1, 1),
ivec2( 2, 1),

ivec2(-1,  2),
ivec2( 0,  2),
ivec2( 1,  2),
ivec2( 2,  2)
);

float g1(float x) {
	float b = 0;
	float c = 1;
	return exp(- (x-b)*(x-b) / (2*c*c));
}
float g2(float x) {
	float b = 0;
	float c = 0.1;
	return exp(- (x-b)*(x-b) / (2*c*c));
}
float g3(float x) {
	float b = 0;
	float c = 0.001f;
	return exp(- (x-b)*(x-b) / (2*c*c));


	vec4 center_depths = vec4(depth_00.y, depth_10.x, depth_11.w, depth_01.z);

	vec4 score = vec4(g2(avg_depth - center_depths.x),
	                  g2(avg_depth - center_depths.y),
	                  g2(avg_depth - center_depths.z),
	                  g2(avg_depth - center_depths.w) );


	vec4 normal_x_00 = textureGather(mat_data_sampler, uv_00, 0);
