 			int meshid = (int)momentMeshid.w;
 
 			float4 color;
+			float variance;
 
 			if (isFirstIter) {
 				color = aovColorVariance[qidx];
+				variance = color.w;
+
+				color = map(color);
+				color = RGB2YCoCg(color);
 			}
 			else {
 				color = clrVarBuffer[qidx];
+				variance = color.w;
 			}
-
-			float variance = color.w;
 
 			int _idx = getIdx(xx, iy, width);
 			float depthX = aovNormalDepth[_idx].w;

	}

	return sum;
}

template <bool isFirstIter, bool isFinalIter>


	if (isFirstIter) {
		// Store color temporary.
		sumC = YCoCg2RGB(sumC);
		tmpBuffer[idx] = unmap(sumC);
	}
	
	if (isFinalIter) {
		sumC = YCoCg2RGB(sumC);
		sumC = unmap(sumC);
		sumC *= texClrTemporalWeight;

		surf2Dwrite(
