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