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)
매개 변수
deviceCameratimestampimagecameraParametersdeviceToOriginTransformtrackingStatus
HandleRenderFrameData(double, Pose, MotionTrackingStatus)
rendering frame 데이터를 입력합니다.
디바이스 데이터가 준비된 후 매 frame 호출해야 하며 frame 을 건너뛸 수 없습니다. 이 데이터는 디바이스가 구동하는 동일 frame 내 현재 Unity 렌더링 camera 데이터와 일치해야 합니다.
protected bool HandleRenderFrameData(double timestamp, Pose pose, MotionTrackingStatus trackingStatus)
매개 변수
timestampposetrackingStatus