Table of Contents

Adicionar um grupo de fontes de quadros

Uma sessão AR pode conter vários componentes de fonte de quadros, chamados de grupo de fontes de quadros (frame source group). Em tempo de execução, a sessão seleciona a fonte de quadros mais adequada do grupo com base no dispositivo atual e nos recursos AR ativados. Este artigo explica como usar e gerenciar grupos de fontes de quadros.

Antes de começar

  • Compreenda os conceitos básicos, tipos e métodos de seleção em tempo de execução de fontes de quadros.

Usar o grupo de fontes de quadros da sessão AR predefinida

Sessões criadas com a configuração padrão incluem automaticamente um grupo de fontes de quadros, geralmente suficiente para usar um único recurso AR.

Diferentes sessões predefinidas contêm diferentes fontes de quadros.

Sessões criadas com a predefinição ARSessionFactory.ARSessionPreset.ImageTracking ou o menu AR Session (Image Tracking Preset) contêm apenas uma única fonte de quadros:

alt text

Sessões criadas com a predefinição ARSessionFactory.ARSessionPreset.MegaBlock_MotionTracking_Inertial ou o menu AR Session (Mega Block Default Preset) contêm uma hierarquia de cena com múltiplos componentes de fonte de quadros:

alt text

Se uma cena inicialmente usa uma predefinição para criar a sessão, ao adicionar outros recursos durante a iteração, é necessário adicionar não apenas o componente de filtro de quadros correspondente, mas também componentes de fonte de quadros adequados conforme necessário.

Importante

Após atualizar da versão 4.7 ou inferior, é necessário excluir completamente a sessão e recriá-la através do menu ou do ARSessionFactory para usar o grupo de fontes de quadros predefinido.

Abaixo estão listados todos os componentes de fonte de dados de quadro para configurações padrão predefinidas de recursos AR. Observe que a ordem na lista corresponde à ordem dos componentes de fonte de dados de quadro na cena:

Predefinição Componentes de fonte de dados de quadro
  1. CameraDeviceFrameSource
  1. XREALFrameSource
  2. AREngineFrameSource
  3. ARCoreFrameSource
  4. ARCoreARFoundationFrameSource
  5. ARKitFrameSource
  6. ARKitARFoundationFrameSource
  7. VisionOSARKitFrameSource
  8. MotionTrackerFrameSource
  1. XREALFrameSource
  2. AREngineFrameSource
  3. ARCoreFrameSource
  4. ARCoreARFoundationFrameSource
  5. ARKitFrameSource
  6. ARKitARFoundationFrameSource
  7. VisionOSARKitFrameSource
  8. MotionTrackerFrameSource
  9. EditorCameraDeviceFrameSource
  1. XREALFrameSource
  2. AREngineFrameSource
  3. ARCoreFrameSource
  4. ARCoreARFoundationFrameSource
  5. ARKitFrameSource
  6. ARKitARFoundationFrameSource
  7. VisionOSARKitFrameSource
  8. MotionTrackerFrameSource
  9. InertialCameraDeviceFrameSource
  10. EditorCameraDeviceFrameSource
  1. XREALFrameSource
  2. AREngineFrameSource
  3. ARCoreFrameSource
  4. ARCoreARFoundationFrameSource
  5. ARKitFrameSource
  6. ARKitARFoundationFrameSource
  7. VisionOSARKitFrameSource
  8. MotionTrackerFrameSource
  9. InertialCameraDeviceFrameSource
  10. ThreeDofCameraDeviceFrameSource
  11. EditorCameraDeviceFrameSource
  1. XREALFrameSource
  2. AREngineFrameSource
  3. ARCoreFrameSource
  4. ARCoreARFoundationFrameSource
  5. ARKitFrameSource
  6. ARKitARFoundationFrameSource
  7. VisionOSARKitFrameSource
  8. MotionTrackerFrameSource
  9. InertialCameraDeviceFrameSource
  10. ThreeDofCameraDeviceFrameSource
  11. CameraDeviceFrameSource
  1. XREALFrameSource
  2. AREngineFrameSource
  3. ARCoreFrameSource
  4. ARCoreARFoundationFrameSource
  5. ARKitFrameSource
  6. ARKitARFoundationFrameSource
  7. VisionOSARKitFrameSource
  8. MotionTrackerFrameSource
  9. CameraDeviceFrameSource
Nota

A ordenação dos componentes criados com predefinições garante o uso da fonte de quadros ideal em todos os dispositivos suportados pelas fontes de quadros integradas.

Usar a configuração padrão de fonte de quadros

Com parâmetros padrão, a configuração da fonte de quadros ajusta-se automaticamente com base no dispositivo e nos recursos AR ativados em tempo de execução.

Se os parâmetros da fonte de quadros forem modificados manualmente, quando os recursos AR da sessão mudarem (por exemplo, ao adicionar rastreamento de movimento a uma sessão que inicialmente continha apenas rastreamento de imagem), pode ser necessário ajustar manualmente os parâmetros da fonte de quadros para atender às novas necessidades do recurso, garantindo assim que todos os recursos AR funcionem com o melhor desempenho.

Importante

Após atualizar da versão 4.7 ou inferior, é necessário excluir completamente a sessão e recriá-la através do menu ou do ARSessionFactory para usar os parâmetros padrão corretos.

Adicionar um grupo de fontes de quadros

Na janela Hierarchy, selecione AR Session (EasyAR), clique com o botão direito e use o menu EasyAR Sense > [ Recurso AR ] > Frame Source : * para adicionar um componente de fonte de quadros adequado para esse recurso. Também é possível usar o menu EasyAR Sense > Frame Source by Transform Type > * Dof > Frame Source : * para adicionar o componente de fonte de quadros necessário.

Em scripts, use ARSessionFactory.AddFrameSource<Source>(GameObject, bool) para adicionar um componente de fonte de quadros.

Por exemplo, usando o menu EasyAR Sense > Frame Source by Transform Type > 3 Dof Rot-Only > Frame Source : Three Dof Camera Device, você adiciona um ThreeDofCameraDeviceFrameSource à sessão selecionada.

alt text

O código de script correspondente é:

ARSessionFactory.AddFrameSource<ThreeDofCameraDeviceFrameSource>(session);

Ordenação de fontes de quadros

Durante o processo de montagem da sessão, apenas uma fonte de quadros do grupo será selecionada e montada na sessão. A regra de seleção depende do valor da propriedade AssembleOptions.FrameSourceSelection. Com a configuração padrão, é possível influenciar a fonte de quadros selecionada ajustando a ordem dos componentes no grupo de fontes de quadros.

Geralmente, você pode usar os métodos de ordenação de objetos na cena diretamente na janela Hierarchy para mover os objetos de fonte de quadros e reordená-los.

Em scripts, use Transform.SetSiblingIndex(int) para ajustar a ordem dos objetos.

Por exemplo, para colocar o MotionTrackerFrameSource antes de outras fontes de quadros, selecione o objeto Motion Tracker na janela Hierarchy e arraste-o para a posição superior.

O mesmo efeito pode ser alcançado com o seguinte código de script:

motionTrackerFrameSource.transform.SetSiblingIndex(0);

Além disso, existem métodos de ordenação predefinidos disponíveis. Na janela Hierarchy, selecione AR Session (EasyAR), clique com o botão direito e use o menu EasyAR Sense > Utility > Sort Frame Source : * > * para ordenar componentes específicos de fonte de quadros.

Em scripts, use ARSessionFactory.SortFrameSource(GameObject, ARSessionFactory.FrameSourceSortMethod) para obter o mesmo efeito.

Por exemplo, usando o menu EasyAR Sense > Utility > Sort Frame Source : Motion Tracker > System SLAM, você coloca o MotionTrackerFrameSource antes do ARCoreFrameSource, ARCoreARFoundationFrameSource, ARKitFrameSource, ARKitARFoundationFrameSource e AREngineFrameSource.

alt text

O código de script correspondente é:

ARSessionFactory.SortFrameSource(session, new ARSessionFactory.FrameSourceSortMethod { MotionTracker = ARSessionFactory.FrameSourceSortMethod.MotionTrackerSortMethod.PreferEasyAR });

Após essa ordenação, a hierarquia da cena se torna:

alt text

Tópicos relacionados