Las pruebas de posicionamiento colocan objetos virtuales en el mundo real

Guías específicas de la plataforma

Android (Kotlin/Java)

NDK de Android (C)

Unity (AR Foundation)

El contenido de RA debe colocarse y dimensionarse correctamente para integrarse en una escena. Al igual que los objetos del mundo real, los objetos virtuales que están más lejos deben verse más pequeños. Puedes realizar una prueba de impacto (o un raycast en AR Foundation para Unity) para determinar la ubicación correcta de un objeto 3D en tu escena. La colocación correcta garantiza que el contenido de RA se renderice con el tamaño (aparente) adecuado.

Las pruebas de posicionamiento encuentran intersecciones entre la geometría 3D del mundo real y un rayo virtual que consta de un origen y una dirección. Los rayos que tienen la cámara del dispositivo como origen son los que se usan con mayor frecuencia, aunque ARCore incluye una API para realizar pruebas de impacto con un rayo arbitrario en coordenadas del espacio mundial.

Imagina que hay un rayo que se origina en la cámara del dispositivo de un usuario y se extiende hacia adelante hasta que golpea la geometría 3D de la escena, como un piso, una pared o un objeto. Cuando esto suceda, recibirás una lista de resultados de intersección, o intersecciones con la geometría de la escena detectada. La lista se ordena por distancia desde el dispositivo, con la intersección más cercana primero. Esto es importante porque, en general, no puedes ver los objetos que están ocultos detrás de otros, por lo que, la mayoría de las veces, el primer resultado es el más significativo.

Contenido de un resultado de hit

Cada resultado de impacto individual se devuelve como una lista con la siguiente información:

  • Distancia desde el origen del rayo, en metros
  • Pose (posición y orientación) del resultado de la detección
  • La geometría 3D con la que chocaste, en forma de un objeto Trackable

Luego, puedes usar el resultado de impacto deseado para colocar de forma realista tu contenido en 3D con un ancla.

Tipos de resultados de hits

Existen cuatro tipos de resultados de hits: profundidad, plano, punto de función y resultados de Colocación instantánea. Cada una tiene sus propios casos de uso y compensaciones, como se muestra en la siguiente tabla.

Tipo de resultado del hit Descripción Orientación Caso de uso
Profundidad Usa la información de profundidad de toda la escena para determinar la profundidad y la orientación correctas de un punto. Perpendicular a la superficie 3D Colocar un objeto virtual en una superficie arbitraria (no solo en pisos y paredes)
Avión Golpea superficies horizontales o verticales para determinar la profundidad y la orientación correctas de un punto. Perpendicular a la superficie 3D Coloca un objeto en un plano (piso o pared) usando la geometría completa del plano. Necesita la escala correcta de inmediato. Respaldo para la prueba de posicionamiento de profundidad
Punto de interés Se basa en las características visuales alrededor del punto en el que el usuario presiona para determinar la posición y orientación correctas de un punto. Perpendicular a la superficie 3D Colocar un objeto en una superficie arbitraria (no solo en pisos y paredes)
Colocación instantánea (rayo persistente) Usa el espacio de la pantalla para colocar contenido. Inicialmente, usa la profundidad estimada que proporciona la app. Funciona de inmediato, pero la postura y la profundidad real cambiarán una vez que ARCore pueda determinar la geometría real de la escena. +Y apunta hacia arriba, en dirección opuesta a la gravedad Coloca un objeto en un plano (piso o pared) usando la geometría completa del plano cuando la colocación rápida es fundamental y la experiencia puede tolerar la profundidad y la escala iniciales desconocidas.

Compatibilidad con dispositivos

Las pruebas de impacto funcionan en todos los dispositivos compatibles con ARCore, pero las pruebas de impacto de profundidad requerirán dispositivos compatibles con profundidad.

Usa los resultados de la detección para colocar contenido de RA

Una vez que tengas un resultado de impacto, puedes usar su posición como entrada para colocar contenido de RA en tu escena.