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
- Complete o Guia de início rápido com exemplos do EasyAR Mega Unity.
- Capacidade de criar conteúdo alinhado com o cenário real.
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.

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

Atribuir material de oclusão à geometria
Alterar o material da geometria para material de oclusão, como o SpatialMappingOcculusion padrão do Unity.

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

Modificar opções de exportação
Ajustar as 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.

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

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

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.

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

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.