Table of Contents

Criar conteúdo 3D alinhado com precisão à cena real

Este documento apresenta como posicionar objetos virtuais com precisão em uma determinada posição do espaço real e alinhá-los precisamente ao espaço real em uma experiência de AR.

Antes de começar

Nota

O conteúdo e as ferramentas a seguir se aplicam apenas ao processo de desenvolvimento de aplicativos Unity usando EasyAR Mega.

Se você estiver desenvolvendo um miniaplicativo, consulte criar e enviar anotações usando o Unity Editor (desenvolvimento de miniaplicativos).

Se você não estiver desenvolvendo um aplicativo Unity, mas quiser visualizar o resultado do mapeamento Mega, consulte visualizar malha 3D da cena real no guia de uso do Mega.

Se você não estiver desenvolvendo um aplicativo Unity, mas precisar simular a execução para ver o efeito de localização, consulte prévia do efeito de execução simulada no guia de uso do Mega.

Este conteúdo exige que os seguintes pacotes Unity já tenham sido importados no projeto:

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

Dados de cena real do block

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

  • Modelo de malha do block

    alt text

  • Panorama (com oclusão por modelo espacial)

    alt text

    Nota

    Alguns dados não oferecem suporte a panorama.

  • Splatting gaussiano 3D LCC

    alt text

    Nota

    Os dados de splatting gaussiano 3D LCC só ficam disponíveis em cenários de uso após a coleta com seu dispositivo de domínio e a conclusão do mapeamento.

Carregar o modelo do block

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

Dica
  • A block mesh é alinhada ao espaço do alvo de rastreamento do block, então você pode posicionar conteúdo 3D diretamente sobre o modelo.
  • A block mesh alterna o LOD de acordo com a posição da câmera. Mantenha a conexão com a rede durante o uso para evitar falhas na troca de LOD.
  • A block mesh é armazenada sob o nó da ferramenta, existe apenas no modo de editor e não será empacotada no aplicativo final.

Montar conteúdo 3D sob o nó do block

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

alt text

Cuidado
  • Objetos 3D não podem ser posicionados sob o nó EasyAR.Mega.EditorTool. Esse nó é usado apenas pela ferramenta de editor e, em alguns casos, pode ser excluído ou recriado automaticamente.
Importante
  • Objetos 3D devem ser posicionados sob o nó do block para garantir que a posição de renderização do conteúdo virtual esteja correta em runtime.

Posicionar conteúdo 3D com precisão

Ao concluir as etapas a seguir, você pode posicionar conteúdo virtual com precisão no espaço real.

Posicionar de acordo com o modelo de malha do block

Na cena, ajuste a posição e a rotação do conteúdo 3D em relação à block mesh até a posição e a orientação desejadas.

Dica
  • Depois que o editor entra no modo play, a block mesh continua disponível, mas não alterna o LOD de acordo com a posição da câmera.
  • A block mesh é armazenada sob o nó da ferramenta, existe apenas no modo de editor e não será empacotada no aplicativo final.

[Opcional] Posicionar de acordo com o panorama

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

Nota
  • Alguns dados não oferecem suporte a panorama.

Clique em qualquer marcador de panorama para posicionar no panorama a partir de sua posição. Você pode alternar panoramas clicando em diferentes marcadores de panorama para confirmar que a posição do conteúdo 3D está correta em diferentes ângulos de visão.

alt text

Dica
  • Ao usar marcadores de panorama para posicionar conteúdo, a oclusão por modelo espacial baseada em mesh continua válida.
  • Depois que o editor entra no modo play, esse recurso continua disponível, mas a precisão da oclusão por modelo espacial baseada em mesh é afetada pela desativação da troca de LOD.
  • Os marcadores de panorama e os dados de panorama são armazenados sob o nó da ferramenta, existem apenas no modo de editor e não serão empacotados no aplicativo final.

[Opcional] Posicionar de acordo com splatting gaussiano 3D LCC

Nota

Este trecho se aplica a cenários de uso após a coleta com seu dispositivo de domínio e a conclusão do mapeamento. Resultados de mapeamento feitos com outros dispositivos não incluem dados LCC 3DGS.

Se você usar o recurso de splatting gaussiano 3D LCC (Qiyu LCC), poderá ajustar a posição do modelo comparando com o 3DGS. Para o uso de dados LCC, consulte carregar dados LCC e alinhá-los à Mesh.

Impacto de defeitos nos dados de cena real sobre o posicionamento de conteúdo

E se o modelo Block carregado não estiver nivelado?

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

O Transform do nó do block no sistema de coordenadas mundial não afeta o sistema de coordenadas local do block e, portanto, não afeta o resultado de renderização do conteúdo 3D como nó filho do block. Seu Transform não tem relação com o efeito final de exibição.

Cuidado

Não modifique o Transform de EasyAR.Mega.EditorTool sob o nó do block; caso contrário, a ferramenta de editor pode deixar de funcionar corretamente ou a posição de exibição do conteúdo durante o rastreamento pode ficar errada.

E se o modelo Block carregado tiver partes quebradas ou ausentes?

No processo de reconstrução 3D, se a cobertura dos ângulos de coleta for incompleta, partes quebradas ou ausentes podem aparecer no modelo denso gerado.

Partes quebradas e ausentes

Diante de um modelo incompleto, se a precisão de alinhamento exigida para o conteúdo 3D nas partes quebradas/ausentes não for alta, você pode posicionar o conteúdo 3D clicando em marcadores de panorama e comparando com o panorama. Depois, pode verificar o efeito clicando em diferentes posições de marcadores de panorama próximos.

Posicionar por meio do panorama

Se a precisão de alinhamento exigida para o conteúdo 3D nas partes quebradas/ausentes for muito alta, será necessário complementar ou atualizar o mapa por meio de atualização incremental ou atualização completa sem perda. Em geral, essas áreas indicam que o processo de captura não teve cobertura. Dentro dessas áreas, o efeito de localização do Mega será afetado, e alinhar o conteúdo 3D apenas no editor não é suficiente.

Próximos passos

Tópicos relacionados