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 quadro da câmera.
Recomenda-se inserir dados a 30 ou 60 fps. A taxa de quadros mínima aceitável = 2, mas o tempo de resposta de alguns algoritmos pode ser afetado. Pode ser chamado em qualquer thread, desde que suas APIs sejam seguras para threads. Esses dados precisam ser consistentes com os dados quando o sensor da câmera é exposto. Sempre que possível, é recomendável inserir dados coloridos no EasyAR Sense, o que ajuda no efeito do EasyAR Mega. Para obter a melhor eficiência, você pode projetar toda a cadeia de dados para que os dados YUV brutos sejam transmitidos diretamente através de memória compartilhada e inseridos no EasyAR Sense usando ponteiros de dados diretamente. 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 quadro de renderização.
Certifique-se de chamar a cada quadro após os dados do dispositivo estarem prontos, sem pular quadros. Esses dados precisam ser consistentes com os dados da câmera de renderização Unity atual que está sendo conduzida no mesmo quadro.
protected bool HandleRenderFrameData(double timestamp, Pose pose, MotionTrackingStatus trackingStatus)
Parâmetros
timestampposetrackingStatus