Os testes de hit colocam objetos virtuais no mundo real

Guias específicos da plataforma

Android (Kotlin/Java)

Android NDK (C)

Unity (fundação de RA)

O conteúdo de RA precisa ser posicionado e dimensionado corretamente para combinar com uma cena. Como objetos do mundo real, os objetos virtuais que estão mais longe devem parecer menores. Você pode fazer um hit-test (ou um raycast na AR Foundation para Unity) para determinar o posicionamento correto de um objeto 3D na sua cena. O posicionamento correto garante que o conteúdo de RA seja renderizado no tamanho adequado (aparente).

Os testes de hit encontram interseções entre a geometria 3D do mundo real e um raio virtual que consiste em uma origem e uma direção. Os raios com a câmera do dispositivo como origem são os mais usados. No entanto, o ARCore inclui uma API para realizar testes de hit com um raio arbitrário nas coordenadas espaciais mundiais.

Imagine que há um raio saindo da câmera do dispositivo de um usuário que se estende para frente até atingir a geometria 3D da cena, como um chão, uma parede ou um objeto. Quando isso acontece, você recebe uma lista de resultados de hits ou interseções com geometria de cena detectada. A lista é classificada pela distância do dispositivo, com a interseção mais próxima primeiro. Isso é importante porque geralmente não é possível ver objetos ocultos atrás de outros objetos. Portanto, na maioria das vezes o primeiro resultado é o mais significativo.

Conteúdo de um resultado de hit

Um resultado de hit individual é retornado como uma lista com as seguintes informações para cada resultado:

  • Distância a partir da origem do raio, em metros
  • Posição (posição e orientação) do resultado do hit
  • A geometria 3D que você atingiu, na forma de um ícone

Você pode usar o resultado de hit desejado para posicionar o conteúdo 3D de maneira realista usando uma âncora.

Tipos de resultados de hits

Há quatro tipos de resultados de hit: Profundidade, Avião, ponto de elemento e resultados de Posição instantânea. Cada um tem casos de uso e desvantagens próprios, conforme mostrado na tabela a seguir.

Tipo de resultado de hit Descrição Orientações Caso de uso
Detalhes Usa informações de profundidade de toda a cena para determinar a profundidade e a orientação corretas de um ponto Perpendicular à superfície 3D Colocar um objeto virtual em uma superfície arbitrária (não apenas em pisos e paredes)
Avião atinge superfícies horizontais e/ou verticais para determinar a profundidade e orientação corretas de um ponto. Perpendicular à superfície 3D Coloque um objeto em um plano (solo ou parede) usando a geometria completa do plano. Escala correta precisa imediatamente. Substituto do teste de hit de profundidade
Ponto do elemento Baseia-se em recursos visuais ao redor do ponto de toque do usuário para determinar a posição e a orientação corretas de um ponto. Perpendicular à superfície 3D Colocar um objeto em uma superfície arbitrária (não apenas em pisos e paredes)
Posicionamento instantâneo (Raycast persistente) Usa o espaço da tela para posicionar o conteúdo. Inicialmente usa a profundidade estimada fornecida pelo app. Funciona instantaneamente, mas a pose e a profundidade real mudam quando o ARCore consegue determinar a geometria real da cena. +Y apontando para cima, oposto à gravidade Colocar um objeto em um plano (solo ou parede) usando a geometria completa do avião, em que o posicionamento rápido é fundamental e a experiência pode tolerar profundidade e escala iniciais desconhecidas

Compatibilidade do dispositivo

Os testes de hit funcionam em todos os dispositivos com suporte ao ARCore, mas os testes de hit de profundidade exigem dispositivos com suporte a profundidade.

Use resultados de hits para posicionar conteúdo de RA

Quando você receber um resultado de hit, use a pose dele como entrada para inserir conteúdo de RA na sua cena.