private SetupIntrinsic ( |
||
intrinsics | 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);
}
/// <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); } }