Observador de compreensão de cena

A Compreensão de Cena devolve uma representação semântica de entidades de cena, bem como as suas formas geométricas em HoloLens 2 (HoloLens 1ª Gen não é apoiada).

Alguns casos de utilização esperado desta tecnologia são:

  • Coloque objetos na superfície mais próxima de um certo tipo (por exemplo, parede e chão)
  • Construa malha de navegação para jogos de estilo de plataforma
  • Fornecer geometria amiga do motor da física como quads
  • Acelerar o desenvolvimento evitando a necessidade de escrever algoritmos semelhantes

O Scene Understanding é introduzido como uma característica experimental no MRTK 2.6. Está integrado no MRTK como um observador espacial chamado . A Apreensão de Cena funciona tanto com o gasoduto Legacy XR como com o gasoduto XR SDK (ambos OpenXR (a partir de MRTK 2.7) e Windows XR Plugin). Em ambos os casos o WindowsSceneUnderstandingObserver é usado.

Nota

A utilização do "Understanding scene in Remoting" não é suportada.

Visão geral do Observador

Quando solicitado, o WindowsSceneUnderstandingObserver testamento devolverá WindowsSceneUnderstandingObserver com atributos úteis para a aplicação para entender o seu ambiente. A frequência de observação, o tipo de objeto devolvido (por exemplo, parede, chão) e outros comportamentos de observadores dependem da configuração do observador através do perfil. Por exemplo, se a máscara de oclusão for desejada, o observador deve ser configurado para gerar quads. A cena observada pode ser guardada como um ficheiro serializado que pode ser carregado mais tarde para recriar a cena no modo de reprodução do editor.

Configuração

Importante

O Entendimento de Cena só é suportado nos HoloLens 2 e Unidade 2019.4 e superior.

  1. Certifique-se de que a plataforma está definida para UWP em configurações de construção.
  2. Adquira o pacote de compreensão de cena através da Ferramenta de Recurso de Realidade Mista.

Usando a compreensão da cena

A maneira mais rápida de começar com a Cena Understanding é verificar a cena da amostra.

Cena de compreensão da cena

In Unitity, use o Project Explorer para abrir o ficheiro de cena Examples/Experimental/SceneUnderstanding/Scenes/SceneUnderstandingExample.unity e pressionar a reprodução!

Importante

Só se aplica ao MRTK 2.6.0 - Quando utilizar a Ferramenta de Recurso de Realidade Mista ou importar de outra forma através da UPM, por favor importe a amostra Demos - SpatialAwareness antes de importar a amostra Experimental - SceneUnderstanding devido a um problema de dependência. Consulte esta GitHub edição para mais informações.

A cena demonstra o seguinte:

  • Visualização de Objetos de Cena observados com uI de aplicação para configurar o observador
  • Roteiro de exemplo DemoSceneUnderstandingController que mostra como alterar as configurações do observador e ouvir eventos relevantes
  • Guardar dados de cena para dispositivo para desenvolvimento offline
  • Carregar dados de cena previamente guardados (.bytes ficheiros) para suportar o fluxo de trabalho de desenvolvimento do editor

Importante

Por defeito, a ShouldLoadFromFile propriedade do observador é definida como falsa. Para ver a visualização de uma sala de amostras serializada, consulte a secção de serviço de observadores configurante abaixo e coloque a propriedade verdadeira no editor.

Nota

A cena da amostra baseia-se no oleoduto Legacy XR. Se estiver a utilizar o pipeline XR SDK, deverá modificar os perfis em conformidade. O perfil fornecido do Sistema de Sensibilização Espacial de Compreensão de Cena ( DemoSceneUnderstandingSystemProfile ) e os perfis do Observador de Compreensão de Cena ( e ) funcionam para ambos os DefaultSceneUnderstandingObserverProfileDemoSceneUnderstandingObserverProfile oleodutos.

Nota

A cena da amostra regista um There is no active AsyncCoroutineRunner when an action is posted. aviso em determinadas circunstâncias devido à ordem de inicialização/execução do fio. Se conseguir confirmar que o AsyncCoroutineRunner componente está ligado ao GameObject "Demo Controller" e ao componente/GameObject ficar ativado/ativo na cena (o caso predefinido), o aviso pode ser ignorado com segurança. No entanto, ao criar uma nova cena com o Scene Understanding, certifique-se de criar um GameObject vazio na raiz e anexe o script ao mesmo, caso contrário, a Cena Understanding pode não funcionar corretamente.

Configurar o serviço de observadores

Selecione o objeto de jogo 'MixedRealityToolkit' e verifique o inspetor.

localização de compreensão de cena na hierarquia

Localização mrtk no inspetor

Estas opções permitirão configurar o WindowsSceneUnderstandingObserver .

Script de exemplo

O guião exemplo DemoSceneUnderstandingController.cs demonstra os principais conceitos em trabalhar com o serviço de Compreensão de Cena.

  • Subscrever eventos de compreensão de cena
  • Lidar com eventos de compreensão de cena
  • Configurar o WindowsSceneUnderstandingObserver tempo de execução

Os alternadores no painel na cena mudam o comportamento do observador de compreensão de cena, chamando as funções públicas deste guião de amostra.

Ligando os Instantiate Prefabs,demonstrará a criação de objetos desse tamanho para se encaixarem em todos os SpatialAwarenessSceneObject,recolhidos cuidadosamente sob um objeto-mãe.

opções de controlador de demonstração

Notas de aplicativos construídos

Construa e implemente para HoloLens da forma padrão. Uma vez em funcionamento, alguns botões devem aparecer para reproduzir com as funcionalidades.

Note que há algumas quedas de poços em fazer consultas ao observador. A configuração errada de um pedido de procura resulta na carga útil do seu evento que não contém os dados esperados. Por exemplo, se não se pede quads, então não haverá texturas de máscaras de oclusão. Da mesma forma, nenhuma malha mundial aparecerá se o observador não estiver configurado para solicitar malhas. O DemoSceneUnderstandingController guião cuida de algumas destas dependências, mas não todas.

Os ficheiros de cenas guardados podem ser acedidos através do portal do dispositivo em . Estes ficheiros de cena podem ser usados no editor especificando-os no perfil de observador encontrado no inspetor.

Localização do Portal do Dispositivo do ficheiro bytes

Bytes de cena serializados no observador

Consulte também