/// <summary> /// Get the project matrix of camera in unity. /// </summary> /// <returns>project matrix of camera.</returns> public static EyeProjectMatrixData GetEyeProjectMatrix(out bool result, float znear, float zfar) { result = false; EyeProjectMatrixData m_EyeProjectMatrix = new EyeProjectMatrixData(); result = NRDevice.Instance.NativeHMD.GetProjectionMatrix(ref m_EyeProjectMatrix, znear, zfar); return(m_EyeProjectMatrix); }
public bool GetProjectionMatrix(ref EyeProjectMatrixData outEyesProjectionMatrix, float znear, float zfar) { NativeFov4f fov = new NativeFov4f(); NativeResult result_left = NativeApi.NRHMDGetEyeFov(m_HmdHandle, (int)NativeEye.LEFT, ref fov); outEyesProjectionMatrix.LEyeMatrix = ConversionUtility.GetProjectionMatrixFromFov(fov, znear, zfar).ToUnityMat4f(); NativeResult result_right = NativeApi.NRHMDGetEyeFov(m_HmdHandle, (int)NativeEye.RIGHT, ref fov); outEyesProjectionMatrix.REyeMatrix = ConversionUtility.GetProjectionMatrixFromFov(fov, znear, zfar).ToUnityMat4f(); NativeResult result_RGB = NativeApi.NRHMDGetEyeFov(m_HmdHandle, (int)NativeEye.RGB, ref fov); outEyesProjectionMatrix.RGBEyeMatrix = ConversionUtility.GetProjectionMatrixFromFov(fov, znear, zfar).ToUnityMat4f(); return(result_left == NativeResult.Success && result_right == NativeResult.Success && result_RGB == NativeResult.Success); }