Class ExternalDeviceMotionFrameSource
- Espacio de nombres
- easyar
- Ensayo
- EasyAR.Sense.dll
Representa una fuente de fotogramas para dispositivos externos con capacidad de seguimiento de movimiento. Normalmente se refiere a dispositivos montados en la cabeza (HMD), donde tanto la renderización de la cámara como el seguimiento del dispositivo se realizan mediante el SDK del dispositivo.
Esta fuente de fotogramas es un dispositivo de seguimiento de movimiento que proporcionará datos de movimiento en un ARSession.
Puedes implementar entradas de dispositivos como HMD heredando de esta clase, pero debes implementar tú mismo la funcionalidad de seguimiento de movimiento. El seguimiento de movimiento de EasyAR no se puede utilizar directamente en dispositivos externos. Necesitas obtener tú mismo las imágenes y los datos de pose del hardware u otras fuentes y alimentarlos a EasyAR. EasyAR no proporciona la capacidad de adquirir estos datos, pero sí la capacidad de ejecutar sus funciones una vez que estos datos se introducen en EasyAR.
Cuando se utilizan productos de prueba (licencia Personal Edition, licencia XR de prueba o servicio Mega de prueba, etc.) con una cámara personalizada o un HMD, EasyAR Sense dejará de responder después de un tiempo fijo y limitado tras cada inicio.
public abstract class ExternalDeviceMotionFrameSource : ExternalDeviceFrameSource
- Herencia
-
ExternalDeviceMotionFrameSource
- Derived
- Miembros heredados
Métodos
HandleCameraFrameData(DeviceFrameSourceCamera, double, Image, CameraParameters, Pose, MotionTrackingStatus)
Introduce los datos del fotograma de la cámara.
Se recomienda introducir datos a 30 o 60 fps. La velocidad de fotogramas mínima aceptable = 2, pero el tiempo de respuesta de algunos algoritmos se verá afectado. Se puede llamar desde cualquier hilo, siempre que tus API sean seguras para subprocesos. Estos datos deben coincidir con los datos cuando el sensor de la cámara estuvo expuesto. Siempre que sea posible, se recomienda introducir datos en color en EasyAR Sense, ya que esto beneficia el rendimiento de EasyAR Mega. Para lograr la máxima eficiencia, puedes diseñar tu cadena de datos para que los datos YUV originales pasen directamente a través de memoria compartida y pasar los punteros de datos directamente a EasyAR Sense. Ten en cuenta la propiedad de los datos.
protected bool HandleCameraFrameData(DeviceFrameSourceCamera deviceCamera, double timestamp, Image image, CameraParameters cameraParameters, Pose deviceToOriginTransform, MotionTrackingStatus trackingStatus)
Parámetros
deviceCameratimestampimagecameraParametersdeviceToOriginTransformtrackingStatus
HandleRenderFrameData(double, Pose, MotionTrackingStatus)
Introduce los datos del fotograma de renderizado.
Asegúrate de llamar a esto cada fotograma una vez que los datos del dispositivo estén listos; no se pueden omitir fotogramas. Estos datos deben coincidir con los datos que impulsan la cámara de renderizado actual de Unity dentro del mismo fotograma.
protected bool HandleRenderFrameData(double timestamp, Pose pose, MotionTrackingStatus trackingStatus)
Parámetros
timestampposetrackingStatus