 
 			float Wl = min(exp(-abs(centerLum - lum) / (sigmaL * sqrGaussedVarLum + 0.000001f)), 1.0f);
 
-			float W = Wz * Wn * Wl;
+			float Wm = meshid == centerMeshId ? 1.0f : 0.0f;
+
+			float W = Wz * Wn * Wl * Wm;
 			
 			sumC += h[idx] * W * color;
 			weightC += h[idx] * W;


			float Wl = min(exp(-abs(centerLum - lum) / (sigmaL * sqrGaussedVarLum + 0.000001f)), 1.0f);

			float W = Wz * Wn * Wl;

			sumC += h[idx] * W * color;
			weightC += h[idx] * W;

	int centerMeshId = (int)centerDepthMeshId.y;

	float4 tmpDdzX = ddx(ix, iy, width, height, aovs[idaten::SVGFPathTracing::AOVType::depth_meshid]);
	float4 tmpDdzY = ddy(ix, iy, width, height, aovs[idaten::SVGFPathTracing::AOVType::depth_meshid]);
	float2 ddZ = make_float2(tmpDdzX.x, tmpDdzY.x);

	float4 centerColor;
