Class ExternalDeviceMotionFrameSource
- Espaço de nomes
- easyar
- Assembly
- EasyAR.Sense.dll
Uma frame source que representa um dispositivo externo com capacidade de motion tracking. Normalmente representa um head-mounted device, em que camera rendering e device tracking são ambos concluídos pelo SDK do dispositivo.
Esta frame source é um dispositivo de motion tracking e gera dados de movimento em ARSession.
Você pode herdá-la para implementar entrada de dispositivo, como headset, mas deve implementar motion tracking por conta própria. O motion tracking do EasyAR não pode ser usado diretamente em dispositivos externos. Você precisa obter dados de imagem e pose por conta própria do hardware ou de outro lugar e inseri-los no EasyAR. O EasyAR não fornece a capacidade de adquirir esses dados, mas fornece a capacidade de executar recursos EasyAR depois que os dados são inseridos no EasyAR.
Quando produtos trial, como personal license, trial XR license ou trial Mega service, são usados em uma custom camera ou headset, o EasyAR Sense deixará de responder por um tempo limitado fixo após cada inicialização.
public abstract class ExternalDeviceMotionFrameSource : ExternalDeviceFrameSource
- Herança
-
ExternalDeviceMotionFrameSource
- Derived
- Membros herdados
Métodos
HandleCameraFrameData(DeviceFrameSourceCamera, double, Image, CameraParameters, Pose, MotionTrackingStatus)
Insere dados de frame da camera.
Recomenda-se inserir dados a 30 ou 60 fps. O frame rate mínimo aceitável é 2, mas o tempo de resposta de alguns algoritmos será afetado. Pode ser chamado de qualquer thread, desde que suas APIs sejam thread-safe. Esses dados devem ser consistentes com os dados no momento da exposição do sensor da camera. Sempre que disponível, recomenda-se inserir dados coloridos no EasyAR Sense, o que ajuda o efeito do EasyAR Mega. Para melhor eficiência, você pode projetar toda a cadeia de dados para que raw YUV data passem diretamente por shared memory e sejam passados diretamente ao EasyAR Sense com um data pointer. Preste atenção à propriedade dos dados.
protected bool HandleCameraFrameData(DeviceFrameSourceCamera deviceCamera, double timestamp, Image image, CameraParameters cameraParameters, Pose deviceToOriginTransform, MotionTrackingStatus trackingStatus)
Parâmetros
deviceCameratimestampimagecameraParametersdeviceToOriginTransformtrackingStatus
HandleRenderFrameData(double, Pose, MotionTrackingStatus)
Insere dados de rendering frame.
Certifique-se de chamá-lo a cada frame depois que os dados do dispositivo estiverem prontos. Frames não podem ser ignorados. Esses dados devem ser consistentes com os dados da camera de renderização Unity atual no mesmo frame conduzido pelo dispositivo.
protected bool HandleRenderFrameData(double timestamp, Pose pose, MotionTrackingStatus trackingStatus)
Parâmetros
timestampposetrackingStatus