Table of Contents

Class ExternalDeviceMotionFrameSource

Пространство имен
easyar
Сборка
EasyAR.Sense.dll

Представляет источник кадров внешнего устройства с возможностью отслеживания движения. Обычно относится к гарнитурам, где рендеринг камеры и отслеживание устройства выполняются SDK устройства.

Этот источник кадров является устройством motion-tracking, выводящим данные о движении в ARSession.

Вы можете реализовать ввод для устройств, таких как гарнитуры, наследуя его, но вы должны самостоятельно реализовать функциональность motion-tracking, так как motion-tracking от EasyAR не может использоваться напрямую на внешних устройствах. Вам необходимо самостоятельно получать изображения и данные о позе (pose) с оборудования или из других источников и передавать их в EasyAR. EasyAR не предоставляет возможности для получения этих данных, но позволяет использовать функциональность EasyAR после их передачи.

При использовании пробных продуктов (например, лицензии Personal, пробной лицензии XR или пробного сервиса Mega) с пользовательской камерой или гарнитурой, EasyAR Sense перестает отвечать через фиксированное ограниченное время после каждого запуска.

public abstract class ExternalDeviceMotionFrameSource : ExternalDeviceFrameSource
Наследование
ExternalDeviceMotionFrameSource
Derived
Наследуемые члены

Методы

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

Вводит данные кадра с камеры.

Рекомендуется вводить данные с частотой 30 или 60 кадров в секунду. Минимально допустимая частота кадров = 2, но время отклика некоторых алгоритмов может пострадать. Может вызываться из любого потока при условии thread-safety вашего API. Данные должны соответствовать моменту экспозиции сенсора камеры. По возможности рекомендуется передавать цветные данные (color data) в 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