Class ExternalDeviceMotionFrameSource
- Espaço de nomes
- easyar
- Assembly
- EasyAR.Sense.dll
Representa a fonte de quadro de dispositivos externos com capacidade de rastreamento de movimento. Normalmente representa dispositivos de cabeça, onde a renderização da câmera e o rastreamento do dispositivo são realizados pelo SDK do dispositivo.
Esta fonte de quadro é um dispositivo de rastreamento de movimento que produzirá dados de movimento na ARSession.
Você pode implementar a entrada de dispositivos como headsets herdando isso, mas deve completar a função de rastreamento de movimento por conta própria, pois o rastreamento de movimento do EasyAR não pode ser usado diretamente em dispositivos externos. Você precisa adquirir dados de imagem e pose do hardware ou de outros lugares e inseri-los no EasyAR por conta própria. O EasyAR não fornece a capacidade de adquirir esses dados, mas oferece a capacidade de executar funções do EasyAR após esses dados serem inseridos.
Ao usar produtos de teste (como licença pessoal, licença XR de teste ou serviço Mega de teste, etc.) em câmeras personalizadas ou headsets, o EasyAR Sense parará de responder após um tempo fixo e limitado 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 câmera.
Recomenda-se inserir dados a 30 ou 60fps. Taxa de frames mínima aceitável = 2, mas o tempo de resposta de alguns algoritmos será afetado. Pode ser chamado em qualquer thread, desde que suas APIs sejam thread-safe. Esses dados devem corresponder aos dados no momento da exposição do sensor da câmera. Sempre que possível, recomenda-se inserir dados coloridos no EasyAR Sense, o que beneficia o efeito do EasyAR Mega. Para máxima eficiência, você pode projetar toda a cadeia de dados para permitir passagem direta dos dados YUV brutos via memória compartilhada e passar o ponteiro de dados diretamente para o EasyAR Sense. Observe a 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 frame de renderização.
Certifique-se de chamar a cada frame após os dados do dispositivo estarem prontos, sem pular frames. Esses dados devem corresponder aos dados que acionam a câmera de renderização Unity atual dentro do mesmo frame.
protected bool HandleRenderFrameData(double timestamp, Pose pose, MotionTrackingStatus trackingStatus)
Parâmetros
timestampposetrackingStatus