ARCameraPostProcess.SetupIntrinsic C# (CSharp) Method

SetupIntrinsic() private method

Pass the camera intrinsics to both PostProcess and ARScreen shader. The camera intrinsics are needed for undistortion or distortion.
private SetupIntrinsic ( TangoCameraIntrinsics intrinsics ) : void
intrinsics Tango.TangoCameraIntrinsics Color camera intrinsics.
return void
    internal void SetupIntrinsic(TangoCameraIntrinsics intrinsics)
    {
        m_postProcessMaterial.SetFloat("_Width", (float)intrinsics.width);
        m_postProcessMaterial.SetFloat("_Height", (float)intrinsics.height);
        m_postProcessMaterial.SetFloat("_Fx", (float)intrinsics.fx);
        m_postProcessMaterial.SetFloat("_Fy", (float)intrinsics.fy);
        m_postProcessMaterial.SetFloat("_Cx", (float)intrinsics.cx);
        m_postProcessMaterial.SetFloat("_Cy", (float)intrinsics.cy);
        m_postProcessMaterial.SetFloat("_K0", (float)intrinsics.distortion0);
        m_postProcessMaterial.SetFloat("_K1", (float)intrinsics.distortion1);
        m_postProcessMaterial.SetFloat("_K2", (float)intrinsics.distortion2);

        m_arScreenMaterial.SetFloat("_TexWidth", (float)intrinsics.width);
        m_arScreenMaterial.SetFloat("_Height", (float)intrinsics.height);
        m_arScreenMaterial.SetFloat("_Fx", (float)intrinsics.fx);
        m_arScreenMaterial.SetFloat("_Fy", (float)intrinsics.fy);
        m_arScreenMaterial.SetFloat("_Cx", (float)intrinsics.cx);
        m_arScreenMaterial.SetFloat("_Cy", (float)intrinsics.cy);
        m_arScreenMaterial.SetFloat("_K0", (float)intrinsics.distortion0);
        m_arScreenMaterial.SetFloat("_K1", (float)intrinsics.distortion1);
        m_arScreenMaterial.SetFloat("_K2", (float)intrinsics.distortion2);
    }

Usage Example

 /// <summary>
 /// Update AR screen material with camera texture size data
 /// (and distortion parameters if using distortion post-process filter).
 /// </summary>
 /// <param name="mat">Material to update.</param>
 /// <param name="arPostProcess">ARCameraPostProcess script that handles distortion for this material instance
 /// (null if none).</param>
 /// <param name="intrinsics">Tango camera intrinsics for the color camera.</param>
 private static void _MaterialUpdateForIntrinsics(Material mat, ARCameraPostProcess arPostProcess, TangoCameraIntrinsics intrinsics)
 {
     if (arPostProcess != null)
     {
         // ARCameraPostProcess should take care of setting everything up for all materials involved.
         arPostProcess.SetupIntrinsic(intrinsics, mat);
     }
     else
     {
         // If not handling distortion, all the material needs to know is camera image dimensions.
         mat.SetFloat("_Width", (float)intrinsics.width);
         mat.SetFloat("_Height", (float)intrinsics.height);
     }
 }
All Usage Examples Of ARCameraPostProcess::SetupIntrinsic