Table of Contents

Utilizar oclusão com EasyAR Mega no Unity

Oclusão (Occlusion) é uma tecnologia crucial para melhorar a imersão na integração real-virtual em RA. Este artigo apresenta como alcançar efeitos de oclusão no Unity usando o EasyAR Mega.

Antes de começar

Formas de implementar a oclusão

  • Modelagem offline: No sistema de coordenadas Block, criar geometrias correspondentes 1:1 a entidades do mundo real (como paredes, pilares, equipamentos grandes); ou obter modelos otimizados através de corte e redução de faces do modelo denso do Block.

  • Alinhamento em tempo de execução: Durante a execução, alinhar o sistema de coordenadas Block com o espaço real através de posicionamento na nuvem e carregar a geometria correspondente.

  • Substituição de material: Atribuir materiais de oclusão especiais a essas geometrias.

  • Efeito visual: Quando a GPU renderiza outros objetos virtuais, os pixéis ocluídos são automaticamente descartados devido ao teste de profundidade falhado, fazendo com que os objetos virtuais sigam a lógica de oclusão do espaço físico real.

Como usar geometrias para oclusão

Siga estas etapas para adicionar geometrias de oclusão à cena e verificar o efeito.

Posicionar geometrias de oclusão

Usar geometrias internas ou personalizadas como oclusão, posicionadas corretamente no sistema de coordenadas Block, com base no modelo denso do Mega Block. Posicionar geometrias de oclusão

[Opcional] Ajustar posição da geometria com base em imagem panorâmica

Ajustar oclusão com panorama

Atribuir material de oclusão à geometria

Alterar o material da geometria para material de oclusão, como o SpatialMappingOcculusion padrão do Unity. Ajustar oclusão com panorama

Simular com dados EIF ou executar em dispositivo

Ajustar o posicionamento do modelo de oclusão conforme o efeito observado.

Como usar modelos densos cortados e reduzidos para oclusão

Siga estes passos para exportar o modelo denso do Mega Block, cortá-lo e reduzi-lo para obter um modelo branco de oclusão, e importá-lo para a cena como oclusão.

Exportar em Mega Blocks

Selecionar exportação na ferramenta Mega Blocks do painel Inspector

Selecionar exportação

Modificar opções de exportação

Ajustar as opções de exportação.

Opções de exportação

O número 1 indica o nível de LOD: níveis mais baixos significam modelos mais simples e com menos faces. Para máxima precisão, escolha 2; para reduzir faces aceitando menos precisão, escolha 1 ou 0.

O número 2 é a opção de exportar texturas. Como precisamos apenas do modelo branco para oclusão, não é necessário exportar texturas.

Cortar e reduzir faces do modelo

Cortar e reduzir faces do modelo exportado em software de criação de conteúdo digital (ex: Blender), salvando como Glb.

Dica

O exemplo utiliza o Decimate Modifier do Blender.

Antes do corte

Após corte e redução de faces:

Após corte

Importar modelo de oclusão para o Unity e vinculá-lo ao nó Block na cena

Importar modelo de oclusão

Modificar o Transform do modelo

Ajustar o Transform do modelo para que Position e Rotation sejam todos 0.

O modelo branco de oclusão deve se alinhar perfeitamente ao modelo denso, pois o corte e redução no software não alteram a definição do sistema de coordenadas Block.

Modelo de oclusão alinhado

Atribuir material de oclusão ao modelo

Alterar o material do modelo para material de oclusão, como o SpatialMappingOcculusion padrão do Unity.

Alterar material do modelo de oclusão

Simular com dados EIF ou executar em dispositivo

Simular com dados EIF ou executar em dispositivo para verificar o efeito.

Expectativas de efeito de oclusão

O efeito da oclusão é influenciado principalmente por:

  • Precisão do próprio rastreamento de posicionamento
  • Precisão do posicionamento do modelo
  • Precisão do modelo em si (se não for uma geometria simples)

Desalinhamentos de alguns centímetros durante deriva do posicionamento são normais.

Modelos de oclusão com muitas faces podem impactar o desempenho. Recomenda-se usar apenas em áreas necessárias e preferir geometrias simples para oclusão.

Tópicos relacionados