Table of Contents

Class ExternalDeviceRotationFrameSource

命名空間
easyar
組件
EasyAR.Sense.dll

表示具有3DOF旋轉追蹤能力的外部裝置的幀來源。通常表示頭戴式裝置,其中相機算繪和裝置追蹤均由裝置SDK完成。

這個幀來源是一種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