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, но время отклика некоторых алгоритмов может пострадать. Вызов может происходить в любом потоке, при условии, что ваши API потокобезопасны. Эти данные должны соответствовать данным в момент экспозиции сенсора камеры. По возможности рекомендуется вводить цветные данные в EasyAR Sense, это улучшает работу EasyAR Mega. Для максимальной эффективности вы можете спроектировать весь поток данных так, чтобы исходные данные YUV передавались напрямую через общую память, и передавать указатель на данные непосредственно в EasyAR Sense. Обратите внимание на права собственности на данные.
protected bool HandleCameraFrameData(DeviceFrameSourceCamera deviceCamera, double timestamp, Image image, CameraParameters cameraParameters, Pose deviceToOriginTransform, MotionTrackingStatus trackingStatus)
Параметры
deviceCameratimestampimagecameraParametersdeviceToOriginTransformtrackingStatus
HandleRenderFrameData(double, Pose, MotionTrackingStatus)
Ввод данных кадра рендеринга.
Убедитесь, что вызываете этот метод каждый кадр после готовности данных устройства, без пропусков кадров. Эти данные должны соответствовать данным, управляющим текущей камерой рендеринга Unity в том же кадре.
protected bool HandleRenderFrameData(double timestamp, Pose pose, MotionTrackingStatus trackingStatus)
Параметры
timestampposetrackingStatus