Guías específicas para cada plataforma
Android (Kotlin/Java)
NDK de Android (C)
Unity (Base de RA)
El contenido de RA debe estar ubicado y dimensionarse correctamente para combinarse con una escena. Al igual que los objetos del mundo real, los objetos virtuales que están más lejos deben parecer más pequeños. Puedes realizar una prueba de éxito (o raycast en AR Foundation para Unity) para determinar la ubicación correcta de un objeto 3D en tu escena. La posición correcta garantiza que el contenido de RA se renderice en el tamaño adecuado (aparente).
En las pruebas de posicionamiento, se encuentran intersecciones entre una geometría en 3D del mundo real y un rayo virtual compuesto por un origen y una dirección. Los rayos con la cámara del dispositivo como origen se usan con mayor frecuencia, aunque ARCore incluye una API para realizar pruebas de posicionamiento con un rayo arbitrario en coordenadas del espacio mundial.
Imagina que un rayo proviene de la cámara del dispositivo de un usuario y se extiende hacia delante hasta alcanzar la geometría 3D de la escena, como un piso, una pared o un objeto. Una vez que esto suceda, recibirás una lista de resultados de resultados o intersecciones con la geometría de escena detectada. La lista se ordena por distancia desde el dispositivo, con la intersección más cercana primero. Esto es importante porque, por lo general, no puedes ver objetos ocultos detrás de otros objetos, por lo que la mayoría de las veces el primer resultado es el más importante.
Contenido de un resultado de hit
Se muestra un resultado de hit individual como una lista con la siguiente información para cada resultado:
- Distancia desde el origen del rayo, en metros
- Posición (posición y orientación) del resultado de hit
- La geometría 3D a la que alcanzaste, en forma de un objeto Rastreable
Luego, puedes usar el resultado del hit deseado para colocar de manera realista tu contenido 3D con un ancla.
Tipos de resultados de hits
Existen cuatro tipos de resultados de hits: profundidad, plano, punto de característica y resultados de Posición instantánea. Cada uno tiene sus propios casos de uso y compensaciones, como se muestra en la siguiente tabla.
Tipo de resultado de hit | Descripción | Orientación | Caso de uso |
---|---|---|---|
Profundidad | Usa 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 | Coloca 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 del punto | Perpendicular a la superficie 3D | Coloca un objeto en un plano (suelo o pared) con la geometría completa del plano. Se necesita la báscula correcta de inmediato. Resguardo para la prueba de posicionamiento de profundidad |
Punto destacado | Se basa en las características visuales del punto en que el usuario presiona para determinar la posición y la orientación correctas de un punto. | Perpendicular a la superficie 3D | Colocar un objeto sobre una superficie arbitraria (no solo en pisos y paredes) |
Posición instantánea (Raycast persistente) | Usa espacio de la pantalla para colocar contenido. Inicialmente, se usa la profundidad estimada que proporciona la app. Funciona al instante, pero la posición y la profundidad real cambiarán una vez que ARCore pueda determinar la geometría real de la escena. | +Y apuntando hacia arriba, opuesto a la gravedad | Coloca un objeto en un plano (suelo o pared) con la geometría completa del plano donde la ubicación rápida es fundamental y la experiencia pueda tolerar una profundidad y una escala iniciales desconocidas. |
Compatibilidad con dispositivos
Las pruebas de posicionamiento funcionan en todos los dispositivos compatibles con ARCore, pero las de profundidad requieren dispositivos compatibles con Depth.
Usa los resultados de hits para colocar contenido de RA
Una vez que tengas un resultado de hit, puedes usar su pose como entrada para colocar contenido de RA en tu escena.