             m_aovMomentTemporalWeight[curaov].ptr(),
             m_atrousClrVar[cur].ptr(), m_atrousClrVar[next].ptr(),
             stepScale,
-            width, height);
+            width, height,
+            cameraDistance);
         checkCudaKernel(atrousFilter);
     }
 

    const float4* __restrict__ clrVarBuffer,
    float4* nextClrVarBuffer,
    int stepScale,
    int width, int height)
{
    int ix = blockIdx.x * blockDim.x + threadIdx.x;
    int iy = blockIdx.y * blockDim.y + threadIdx.y;


        bool isFirstIter = iterCnt == 0 ? true : false;
        bool isFinalIter = iterCnt == maxIterCnt - 1 ? true : false;

        float cameraDistance = height / (2.0f * aten::tan(0.5f * m_camParam.vfov));

        int stepScale = 1 << iterCnt;

