Hololens2远程音视频通话与AR远程空间标注
使用Unity2021.3.21版本开发,基于OpenXR+MRTK3.0+WebRTC实现。
(1)通过视频获取视频帧的矩阵的方法可以参考:https://learn.microsoft.com/zh-cn/windows/mixed-reality/develop/advanced-concepts/locatable-camera-overview
通过MediaCapture类可以进行MR视频捕捉,当然也可以通过微软的第三方插件进行捕捉视频。通过改视频获取到视频帧对应的矩阵即可。
(2)视频坐标到空间坐标,根据(1)里面的视频帧对应的矩阵就可以了将视频上面的坐标转换到空间Hololens空间中
下面展示一些 内联代码片
。
/// <summary>
/// 将屏幕上的坐标转换到世界坐标(将视频上的坐标转换成0到1的坐标,坐标原点为视频左下角,即为相对MR捕捉相机的屏幕坐标)
/// </summary>
/// <param name="x">(0~1)</param>
/// <param name="y">(0~1)</param>
/// <returns></returns>
public Vector3 ScreenPointToWorldPoint(float x, float y)
{
Vector4 clipPos = Vector4.zero;
clipPos.x = 2 * x - 1;
clipPos.y = 2 * y- 1;
clipPos.z = -0;
Vector3 cameraPosinv =cam.projectionMatrix.inverse.MultiplyPoint(clipPos);
return cam.cameraToWorldMatrix.MultiplyPoint(cameraPosinv);
}
##
(3)附上一些学习视频:
视频一:https://www.bilibili.com/cheese/play/ss16358
视频二:https://www.bilibili.com/video/BV12J4m1j7XS/