Table of Contents

Class ExternalDeviceMotionFrameSource

네임스페이스
easyar
어셈블리
EasyAR.Sense.dll

motion tracking 기능을 가진 외부 디바이스를 나타내는 frame source 입니다. 일반적으로 head-mounted device 를 나타내며, camera rendering 과 device tracking 은 모두 디바이스 SDK 에 의해 완료됩니다.

이 frame source 는 motion tracking 디바이스이며 ARSession 에서 모션 데이터를 출력합니다.

이를 상속하여 headset 같은 디바이스 입력을 구현할 수 있지만 motion tracking 기능은 직접 구현해야 합니다. EasyAR 의 motion tracking 은 외부 디바이스에서 직접 사용할 수 없습니다. 하드웨어나 다른 곳에서 이미지와 pose 데이터를 직접 가져와 EasyAR 에 입력해야 합니다. EasyAR 는 이러한 데이터를 가져오는 기능을 제공하지 않지만, 데이터를 EasyAR 에 입력한 후 EasyAR 기능을 실행하는 기능을 제공합니다.

personal license, trial XR license, trial Mega service 같은 trial 제품을 custom camera 또는 headset 에서 사용할 때 EasyAR Sense 는 매번 시작 후 고정된 제한 시간 동안 응답을 중지합니다.

public abstract class ExternalDeviceMotionFrameSource : ExternalDeviceFrameSource
상속
ExternalDeviceMotionFrameSource
파생
상속된 멤버

메서드

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

camera frame 데이터를 입력합니다.

30 또는 60 fps 데이터를 입력하는 것이 좋습니다. 허용 가능한 최소 frame rate 는 2 이지만 일부 알고리즘 응답 시간이 영향을 받습니다. API 가 thread-safe 라면 어느 thread 에서든 호출할 수 있습니다. 이 데이터는 camera sensor 노출 시점의 데이터와 일치해야 합니다. 가능하다면 컬러 데이터를 EasyAR Sense 에 입력하는 것이 좋으며, 이는 EasyAR Mega 효과에 도움이 됩니다. 최상의 효율을 위해 raw YUV data 가 shared memory 를 통해 직접 전달되고 data pointer 로 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)

rendering frame 데이터를 입력합니다.

디바이스 데이터가 준비된 후 매 frame 호출해야 하며 frame 을 건너뛸 수 없습니다. 이 데이터는 디바이스가 구동하는 동일 frame 내 현재 Unity 렌더링 camera 데이터와 일치해야 합니다.

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

매개 변수

timestamp
pose
trackingStatus