Table of Contents

Class ExternalDeviceRotationFrameSource

命名空间
easyar
程序集
EasyAR.Sense.dll

表示具有3DOF旋转跟踪能力的外部设备的frame source。通常表示头戴设备,其中相机渲染和设备跟踪都由设备SDK完成。

这个frame source是一种3DOF旋转跟踪设备,在ARSession中会输出旋转数据。

你可以通过继承它来实现头显等设备输入,但你必须自己完成跟踪功能,EasyAR的3DOF旋转跟踪并不能直接在外部设备上使用。你需要自己从硬件或其它地方获取图像和旋转数据并输入到EasyAR,EasyAR不提供这些数据的获取能力,但提供将这些数据输入EasyAR之后运行EasyAR功能的能力。

在自定义相机或头显上使用试用产品(个人版license、试用版XR license或试用版Mega服务等)时,EasyAR Sense每次启动后会在固定的有限时间内停止响应。

public abstract class ExternalDeviceRotationFrameSource : ExternalDeviceFrameSource
继承
ExternalDeviceRotationFrameSource
继承成员

方法

HandleCameraFrameData(DeviceFrameSourceCamera, double, Image, CameraParameters, Quaternion)

输入相机帧数据。

建议输入30或60fps的数据。最小可接受帧率 = 2,但部分算法响应时间会受影响。它可以在任何线程调用,只要你的API都是线程安全的即可。这些数据需要与相机传感器曝光时的数据一致。只要可以获取,建议输入彩色数据到EasyAR Sense,这对EasyAR Mega的效果是有帮助的。为实现最佳效率,你可以设计整个数据链条让原始YUV数据直接通过共享内存透传,并直接使用数据指针传入EasyAR Sense。请注意数据所有权。

protected bool HandleCameraFrameData(DeviceFrameSourceCamera deviceCamera, double timestamp, Image image, CameraParameters cameraParameters, Quaternion deviceRotation)

参数

deviceCamera
timestamp
image
cameraParameters
deviceRotation

HandleRenderFrameData(double, Quaternion)

输入渲染帧数据。

请确保在设备数据准备好之后每帧调用,不能跳帧。这些数据需要与驱动同一帧内当前Unity渲染相机的数据一致。

protected bool HandleRenderFrameData(double timestamp, Quaternion rotation)

参数

timestamp
rotation