Table of Contents

Class ExternalDeviceMotionFrameSource

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

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

这个frame source是一种运动跟踪设备,在ARSession中会输出运动数据。

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

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

public abstract class ExternalDeviceMotionFrameSource : ExternalDeviceFrameSource
继承
ExternalDeviceMotionFrameSource
Derived
继承成员

方法

HandleCameraFrameData(DeviceFrameSourceCamera, double, Image, CameraParameters, Pose, MotionTrackingStatus)

输入相机帧数据。

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

protected bool HandleCameraFrameData(DeviceFrameSourceCamera deviceCamera, double timestamp, Image image, CameraParameters cameraParameters, Pose deviceToOriginTransform, MotionTrackingStatus trackingStatus)

参数

deviceCamera
timestamp
image
cameraParameters
deviceToOriginTransform
trackingStatus

HandleRenderFrameData(double, Pose, MotionTrackingStatus)

输入渲染帧数据。

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

protected bool HandleRenderFrameData(double timestamp, Pose pose, MotionTrackingStatus trackingStatus)

参数

timestamp
pose
trackingStatus