 
 	neighbor_sum /= 5.0;
 
-	float lum = RGB2YCbCr(neighbor_sum.xyz).x;
-	neighbor_sum.xyz = neighbor_sum.xyz / (1 - lum);
+	neighbor_sum.xyz = unmap(neighbor_sum.xyz);
 
 	oBuffer = neighbor_sum;
 	oBuffer.a = 1;
 
 	oScreen = oBuffer;
-}
+}

#if 1
		vec3 color_diff = abs(neighbor.xyz - center_color.xyz);
		vec3 ycc = RGB2YCbCr(color_diff.xyz);		// SƂ̍YCbCrŌ
		float cbcr_len = length(color_diff.yz);

		// F傫قȂ鎞A臒lɎ܂͈͂ɐF␳č
		if (cbcr_threshhold < cbcr_len) {
			ycc = (cbcr_threshhold / cbcr_len) * ycc;
			neighbor.rgb = center_color.rgb + YCbCr2RGB(ycc);
		}
#else
		float lum0 = RGB2YCbCr(center_color.xyz).x;

{
	vec4 clr = texture2D(s, uv);

	clr.xyz = map(clr.xyz);

	return clr;
}
