Guías específicas para plataformas
Android (Kotlin/Java)
NDK de Android (C)
Unity (AR Foundation)
Unreal Engine
Como desarrollador de apps de RA, quieres combinar a la perfección lo virtual con lo real para tus usuarios. Cuando un usuario coloca un objeto virtual en su escena, quiere que parezca que pertenece al mundo real. Si estás creando una aplicación para que los usuarios compren muebles, querrás que sepan que el sillón que están a punto de comprar se adaptará a su espacio.
La API de Depth ayuda a la cámara de un dispositivo a comprender el tamaño y la forma de los objetos reales de una escena. Crea imágenes de profundidad (o mapas de profundidad) que agregan un toque de realismo a tus apps. Puedes usar la información que proporciona una imagen de profundidad para brindar experiencias del usuario inmersivas y realistas.
Casos de uso para desarrollar con la API de Depth
La API de Depth puede impulsar la oclusión de objetos, mejorar la inmersión y las interacciones nuevas que potencian el realismo de las experiencias de RA. Estas son algunas formas en que puedes usarlo en tus propios proyectos. Para ver ejemplos de Depth en acción, explora las escenas de muestra en el lab de profundidad de ARCore, que muestra diferentes formas de acceder a los datos de profundidad. Esta app de Unity es de código abierto disponible en GitHub.
Cómo habilitar la oclusión
La oclusión, o la renderización precisa de un objeto virtual detrás de objetos del mundo real, es primordial para una experiencia de RA envolvente. Piensa en un Andy virtual que un usuario podría querer colocar en una escena que contiene un baúl junto a una puerta. Si se renderiza sin oclusión, el Andy se superpondrá de manera poco realista con el borde del baúl. Si usas la profundidad de una escena y comprendes a qué distancia se encuentra el Andy virtual en relación con un entorno como el tronco de madera, puedes renderizar a Andy con una oclusión para que parezca mucho más realista en su entorno.
Cómo transformar una escena
Muéstrales a los usuarios un nuevo mundo inmersivo con copos de nieve virtuales para acomodarse en los brazos y las almohadas de sus sofás o proyectando la sala de estar en una niebla neblina. Puedes usar la función de profundidad para crear una escena en la que las luces virtuales interactúan, se ocultan detrás y iluminan objetos reales.
Distancia y profundidad de campo
¿Necesitas mostrar que algo está lejos? Con la API de Depth, puedes usar la medición de distancia y agregar efectos de profundidad de campo, como desenfocar el fondo o el primer plano de una escena.
Habilita las interacciones de los usuarios con objetos de RA
Permite que los usuarios «toquen» el mundo a través de tu app habilitando la interacción del contenido virtual con el mundo real a través de colisión y física. Haz que objetos virtuales superen obstáculos del mundo real o haz que bolas de paintball virtuales golpeen y salpiquen sobre un árbol del mundo real. Cuando combinas la colisión basada en profundidad con la física del juego, puedes dar vida a la experiencia.
Cómo mejorar las pruebas de posicionamiento
La profundidad se puede usar para mejorar los resultados de las pruebas de posicionamiento. Las pruebas de posicionamiento de planos solo funcionan en superficies planas con textura, mientras que las de profundidad son más detalladas y funcionan incluso en áreas no planas y con textura baja. Esto se debe a que las pruebas de posicionamiento de profundidad usan información de profundidad de la escena para determinar la profundidad y la orientación correctas de un punto.
En el siguiente ejemplo, los Andys verdes representan pruebas de posicionamiento de plano estándar y los Andys rojos representan pruebas de posicionamiento de profundidad.
Compatibilidad con dispositivos
La API de Depth solo es compatible con dispositivos que tienen la potencia de procesamiento necesaria de profundidad y debe habilitarse manualmente en ARCore, como se describe en Habilita la profundidad.
Algunos dispositivos también pueden incluir un sensor de profundidad de hardware, como un registro de tiempo de vuelo (ToF). Consulta la página Dispositivos compatibles con ARCore para obtener una una lista actualizada de dispositivos compatibles con la API de Depth y una lista de los dispositivos Tener un sensor de profundidad de hardware compatible, como un sensor ToF
Imágenes de profundidad
La API de Depth usa un algoritmo de profundidad desde movimiento para crear imágenes de profundidad que ofrecen una vista en 3D del mundo. Cada píxel de una imagen de profundidad se asocia con una medición de qué tan lejos se encuentra la escena de la cámara. Este algoritmo toma varias imágenes de dispositivos desde diferentes ángulos y las compara para estimar la distancia a cada píxel a medida que un usuario mueve su teléfono. Usa el aprendizaje automático de forma selectiva para aumentar el procesamiento de profundidad, incluso con movimiento mínimo del usuario. También aprovecha cualquier hardware adicional que pueda tener el dispositivo del usuario. Si el dispositivo tiene un sensor de profundidad dedicado, como ToF, el algoritmo combina automáticamente los datos de todas las fuentes disponibles. Esto mejora la imagen de profundidad existente y habilita la profundidad incluso cuando la cámara no está en movimiento. También proporciona una mejor profundidad en superficies con pocas características o ninguna, como paredes blancas, o en escenas dinámicas con personas u objetos en movimiento.
En las siguientes imágenes, se muestra la imagen de una cámara de un pasillo con una bicicleta en la pared y una visualización de la imagen de profundidad que se crea a partir de las imágenes de la cámara. Las áreas en rojo están más cerca de la cámara y las áreas en azul están más alejadas.
Profundidad a partir del movimiento
Los datos de profundidad están disponibles cuando el usuario mueve su dispositivo. El algoritmo puede obtener estimaciones de profundidad sólidas y precisas de 0 a 65 metros de distancia. Los resultados más precisos se producen cuando el dispositivo se encuentra entre medio metro y cinco metros de distancia del entorno real. Las experiencias que alienten al usuario a mover más el dispositivo obtendrán mejores resultados.
Cómo adquirir imágenes de profundidad
Con la API de Depth, puedes recuperar imágenes de profundidad que coincidan con todos los fotogramas de la cámara. Una imagen de profundidad adquirida tiene las mismas funciones intrínsecas de marca de tiempo y campo visual que la cámara. Los datos válidos de profundidad solo están disponibles una vez que el usuario comienza a mover el dispositivo, ya que la profundidad se adquiere a partir del movimiento. Las superficies con pocas características o ninguna, como paredes blancas, se asociarán con una profundidad imprecisa.
¿Qué sigue?
- Consulta el Lab de profundidad de ARCore, que muestra diferentes formas de acceder a los datos de profundidad.