Table of Contents

Criar conteúdo 3D alinhado com precisão ao cenário real

Este documento apresentará como colocar objetos virtuais com precisão em determinadas posições no espaço real e alinhá - los com precisão ao espaço real em uma experiência AR.

Antes de começar

Nota

O seguinte conteúdo e ferramentas aplicam-se apenas ao processo de desenvolvimento de aplicações Unity utilizando o EasyAR Mega.

Se estiver a desenvolver um mini-programa, consulte Criar e carregar anotações utilizando o editor Unity (Desenvolvimento de mini-programas).

Se não estiver a desenvolver uma aplicação Unity, mas desejar visualizar os resultados do mapeamento Mega, consulte Visualizar a malha 3D texturizada no guia de utilização do Mega.

Se não estiver a desenvolver uma aplicação Unity, mas necessitar de simular a execução para verificar o efeito da localização, consulte Pré-visualização do efeito de simulação de execução no guia de utilização do Mega.

Este artigo requer que os seguintes pacotes Unity já tenham sido importados para o projeto:

  • com.easyar.sense
  • com.easyar.mega

Block dados de cena real

No desenvolvimento do Mega, podem ser usados vários dados de cena real para auxiliar a colocar conteúdo 3D:

  • modelo de malha block

    alt text

  • panorama (com oclusão de modelo espacial)

    alt text

    Nota

    Alguns dados não suportam panorama.

  • LCC 3D gaussian splatting

    alt text

    Nota

    Os dados de LCC 3D gaussian splatting só estão disponíveis no cenário de uso após a coleta feita com o dispositivo do domínio e a conclusão do mapeamento.

Habilitar ferramenta de editor

Primeiro é necessário adicionar um alvo de rastreamento Mega no editor, em seguida selecione o alvo de rastreamento e clique no botão Create Editor Tool.

Dica

Se o aplicativo precisar criar o alvo de rastreamento via script em vez de criá-lo no editor, após posicioná-lo no editor, você pode registrar o alvo de rastreamento e/ou seus objetos filhos. Em tempo de execução, configure o alvo de rastreamento via script e monte os objetos filhos sob o alvo de rastreamento.

Verifique as informações do serviço e conecte-se a ele.

Importante

Antes de conectar, é necessário verificar as permissões da API Key.

  • Se o Type do serviço for Block, é necessário garantir que a API Key usada tenha permissão para acessar o serviço Mega Block e o serviço SpatialMap.
  • Se o Type do serviço for Landmark, é necessário garantir que a API Key tenha permissão para acessar o serviço Mega Landmark.

alt text

Se as permissões forem insuficientes, você verá uma mensagem de erro informando que a validação da conexão com o serviço falhou.

alt text

Se a fonte de dados do target estiver corretamente configurada, após conectar-se normalmente ao serviço, você poderá ver a hora da última atualização dos dados e a interface de controle dos dados do editor de block.

Dica

Se a fonte de dados do target estiver em branco, após conectar-se normalmente ao serviço, você verá a lista de dados de block do serviço. Após selecionar o block que deseja usar, você também poderá acessar a interface de controle dos dados do editor de block, e a fonte de dados do target será preenchida automaticamente.

Os dados da ferramenta do editor são armazenados sob o nó EasyAR.Mega.EditorTool. Excluir este nó equivale a excluir os dados da ferramenta do editor.

Cuidado

Não modifique diretamente o conteúdo do nó EasyAR.Mega.EditorTool, especialmente não modifique o Transform deste nó, pois isso pode fazer com que a ferramenta do editor não funcione corretamente ou cause erros na posição de exibição do conteúdo durante o rastreamento.

Carregar modelo de block

Clique na primeira caixa de seleção sob os dados de block, isso iniciará o processo de carregamento dos dados do editor de block. Após o carregamento, você pode ver a mesh do block atual na janela Scene.

Dica
  • A mesh de block está alinhada com o espaço-alvo do rastreamento de block, você pode posicionar conteúdo 3D diretamente no modelo.
  • A mesh de block alterna LOD de acordo com a posição da câmera, é necessário manter a conexão com a internet durante o uso para evitar falha na alternância de LOD.
  • A mesh de block é armazenada sob o nó da ferramenta, existe apenas no modo editor e não será empacotada no aplicativo final.

Montar conteúdo 3D sob o nó block

Após carregar o modelo block, monte o conteúdo 3D sob o nó Block na cena, como seu nó filho.

alt text

Cuidado
  • Os objetos 3D não podem ser posicionados sob o nó EasyAR.Mega.EditorTool. Esse nó é destinado apenas às ferramentas do editor e, em alguns casos, será excluído ou reconstruído automaticamente.
Importante
  • Os objetos 3D devem ser posicionados sob o nó block para garantir que a posição de renderização do conteúdo virtual seja correta em tempo de execução.

Posicionamento preciso de conteúdo 3D

Você pode posicionar o conteúdo virtual com precisão no espaço real seguindo as etapas abaixo.

Posicionar de acordo com o modelo de grade de blocos

No cenário, ajuste a posição e a rotação do conteúdo 3D em relação ao block mesh, ajustando - o para a posição e direção desejadas.

Dica
  • Após o editor entrar no modo play, o block mesh ainda está disponível, mas não alternará o LOD de acordo com a posição da câmera.
  • O block mesh é armazenado no nó da ferramenta e existe apenas no modo do editor, não sendo empacotado no aplicativo final.

[Opcional] Colocação com base em panorama

Clique na caixa de seleção Panorama Preview Marker para exibir os marcadores de panorama.

Nota
  • Alguns dados não suportam panorama.

Clique em qualquer marcador de panorama para posicionar o conteúdo nessa localização no modo panorama. Você pode alternar entre diferentes panoramas clicando em diferentes marcadores de panorama para verificar se a posição do conteúdo 3D está correta em todas as perspectivas.

texto alternativo

Dica
  • Ao usar marcadores de panorama para posicionar conteúdo, a oclusão baseada em modelo espacial de malha (mesh) ainda é efetiva.
  • Após entrar no modo de reprodução (play) no editor, esta função permanece disponível, mas a precisão da oclusão baseada em modelo espacial de malha pode ser afetada se a alternância de LOD estiver desativada.
  • Os marcadores de panorama e os dados de panorama são armazenados no nó da ferramenta, existem apenas no modo editor e não são incluídos no aplicativo final.

[Opcional] Posicionamento com base nas Splash de Gauss 3D LCC

Nota

Este trecho de conteúdo se aplica ao cenário de uso após a coleta com dispositivos LCC e a conclusão da construção do mapa. Os resultados da construção do mapa com outros dispositivos não contêm dados de LCC 3DGS.

Se você usou o recurso de Splash de Gauss 3D LCC (LCC do LCC), pode ajustar a posição do modelo com base no 3DGS. Para o uso dos dados LCC, consulte Carregar dados LCC e alinhar com a Malha.

Impacto dos defeitos dos dados do cenário real na colocação de conteúdo

Se o modelo do Bloco carregado não estiver horizontal, o que fazer?

No painel Hierarchy, selecione o nó do bloco que precisa ser ajustado. No painel Inspector, modifique a Rotação até que a orientação do modelo pareça correta no editor do Unity.

A Transform do nó do bloco no sistema de coordenadas mundial não afeta o sistema de coordenadas local do bloco e, portanto, não afeta o resultado da renderização do conteúdo 3D que é um nó filho do bloco. Sua Transform é irrelevante para o efeito final de exibição.

Cuidado

Não modifique a Transform do EasyAR.Mega.EditorTool no nó do bloco, caso contrário, pode causar problemas no funcionamento da ferramenta do editor ou na exibição do conteúdo na posição incorreta durante o rastreamento.

O que fazer se o modelo do Bloco carregado tiver partes quebradas ou faltantes?

Durante o processo de reconstrução 3D, se for afetado pela cobertura incompleta da perspectiva de coleta, partes quebradas ou faltantes podem aparecer no modelo denso gerado.

Quebrado e faltante

Quando se depara com um modelo incompleto, se a precisão do alinhamento do conteúdo 3D das partes quebradas/faltantes não for muito alta, é possível colocar o conteúdo 3D clicando em Marcações panorâmicas e comparando com o Panorama. Em seguida, é possível verificar o efeito clicando em diferentes posições de Marcações panorâmicas próximas.

Colocação através do panorama

Se a precisão do alinhamento do conteúdo 3D das partes quebradas/faltantes for muito alta, é necessário fazer a complementação ou atualização do mapa por meio da Atualização incremental ou Atualização total sem perda. Geralmente, essa área significa que não foi coberta durante o processo de coleta de imagens, e o efeito de localização do Mega nessa área será afetado. Apenas alinhar o conteúdo 3D no editor não é suficiente.

Próximos passos

Tópicos relacionados