Guias específicos da plataforma
Android (Kotlin/Java)
Android NDK (C)
Unity (AR Foundation)
O conteúdo de RA precisa ser posicionado e dimensionado corretamente para se misturar a uma cena. Assim como objetos do mundo real, os objetos virtuais mais distantes devem parecer menores. Você pode realizar um teste de clique (ou um raycast no AR Foundation para Unity) para determinar o posicionamento correto de um objeto 3D na 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 composto por uma origem e uma direção. Os raios com a câmera do dispositivo como origem são usados com mais frequência, mas o ARCore inclui uma API para realizar testes de ocorrência com um raio arbitrário em coordenadas de espaço mundial.
Imagine que há um raio originado da câmera do dispositivo de um usuário que se estende para frente até atingir a geometria 3D da cena, como um piso, uma parede ou um objeto. Quando isso acontece, você recebe uma lista de resultados de hits ou interseções com a geometria da cena detectada. A lista é classificada por distância do dispositivo, com o cruzamento mais próximo primeiro. Isso é importante porque, geralmente, não é possível ver objetos ocultos atrás de outros. 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 da origem do raio, em metros
- Postura (posição e orientação) do resultado do hit
- A geometria 3D que você atingiu, na forma de um objeto rastreável
Em seguida, use o resultado de hit desejado para posicionar seu conteúdo 3D de forma realista usando uma âncora.
Tipos de resultados de hits
Há quatro tipos de resultados de hit: profundidade, plano, ponto de recurso e posicionamento instantâneo. Cada um tem casos de uso e compensações próprios, como mostrado na tabela a seguir.
| Tipo de resultado do hit | Descrição | Orientação | Caso de uso |
|---|---|---|---|
| Profundidade | 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 | Atinja superfícies horizontais e/ou verticais para determinar a profundidade e a orientação corretas de um ponto. | Perpendicular à superfície 3D | Coloque um objeto em um plano (chão ou parede) usando a geometria completa dele. Preciso da escala correta imediatamente. Substituição para o teste de hit de profundidade |
| Ponto de recurso | Depende de 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 colocar conteúdo. Inicialmente, usa a profundidade estimada fornecida pelo app. Funciona instantaneamente, mas a postura e a profundidade real mudam quando o ARCore consegue determinar a geometria real da cena. | +Y apontando para cima, oposto à gravidade | Coloque um objeto em um plano (chão ou parede) usando a geometria completa do plano quando a colocação rápida é essencial e a experiência pode tolerar profundidade e escala iniciais desconhecidas. |
Compatibilidade do dispositivo
Os testes de detecção funcionam em todos os dispositivos compatíveis com o ARCore, mas os testes de detecção de profundidade exigem dispositivos compatíveis com profundidade.
Usar resultados de ocorrências para posicionar conteúdo de RA
Depois de ter um resultado de detecção, use a postura dele como entrada para posicionar conteúdo de RA na cena.