La profundidad agrega realismo

Guías específicas para cada plataforma

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 estén seguros de 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 o mapas de profundidad, lo que agrega una capa de realismo a tus apps. Puedes utilizar la información proporcionada por una imagen de profundidad para permitir experiencias del usuario envolventes y realistas.

Casos de uso para desarrollar con la API de Depth

La API de Depth puede potenciar la oclusión de objetos, una mejor inmersión y las interacciones novedosas que mejoran el realismo de las experiencias de RA. A continuación, se incluyen algunas formas en las que puedes usarlo en tus propios proyectos. Para ver ejemplos de Depth en acción, explora las escenas de muestra en ARCore Depth Lab, en las que se muestran las diferentes maneras de acceder a los datos de profundidad. Esta app de Unity es de código abierto en GitHub.

Habilitar la oclusión

La oclusión, es decir, renderizar con precisión un objeto virtual detrás de objetos del mundo real, es esencial 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. Cuando se renderiza sin oclusión, Andy se superpondrá de manera poco realista con el borde del tronco. Si usas la profundidad de una escena y comprendes qué tan lejos se encuentra el Andy virtual en relación con un entorno como el tronco de madera, puedes representar con precisión a Andy con oclusión, lo que hace que parezca mucho más realista en su entorno.

Transforma una escena

Muestra copos de nieve virtuales para sentarse en los brazos y las almohadas de sus sillones, o arroja la sala de estar en una niebla neblina para mostrar al usuario un mundo nuevo y envolvente. Puedes usar la profundidad para crear una escena en la que interactúan luces virtuales, se ocultan detrás y iluminan objetos reales.

Distancia y profundidad de campo

¿Necesitas demostrar que algo está lejos? Con la API de Depth, puedes usar la medición de distancias y agregar efectos de profundidad de campo, como desenfocar el fondo o el primer plano de una escena.

Habilita las interacciones del usuario con objetos de RA

Permite que los usuarios "toquen" el mundo a través de tu app permitiendo que el contenido virtual interactúe con el mundo real a través de colisiones y física. Haz que los objetos virtuales superen obstáculos del mundo real o haz que las bolas de paintball virtuales golpeen y choquen contra un árbol del mundo real. Cuando combinas la colisión basada en profundidad con la física del juego, puedes hacer que una experiencia cobre vida.

Mejora las pruebas de posicionamiento

La profundidad se puede usar para mejorar los resultados de la prueba de posicionamiento. Las pruebas de posicionamiento de los planos solo funcionan en superficies planas con textura, mientras que las pruebas de posicionamiento son más detalladas y funcionan incluso en áreas no planas y de baja textura. Esto se debe a que estas pruebas 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 las pruebas de posicionamiento de los planos estándar y los Andys rojos representan las pruebas de posicionamiento de profundidad.

Compatibilidad con dispositivos

La API de Depth solo es compatible con dispositivos que tienen la potencia de procesamiento para admitir la profundidad y debe habilitarse de forma manual en ARCore, como se describe en Cómo habilitar Depth.

Algunos dispositivos también pueden proporcionar un sensor de profundidad de hardware, como un sensor de tiempo de vuelo (ToF). Consulta la página de dispositivos compatibles con ARCore para obtener una lista actualizada de dispositivos compatibles con la API de Depth y de los que tienen 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 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 calcular la distancia a cada píxel a medida que el usuario mueve su teléfono. Usa el aprendizaje automático de forma selectiva para aumentar el procesamiento de la profundidad, incluso con un movimiento mínimo del usuario. También aprovecha cualquier hardware adicional que pueda tener el dispositivo de un usuario. Si el dispositivo tiene un sensor de profundidad dedicado, como ToF, el algoritmo combina automáticamente los datos de todas las fuentes disponibles. De esta manera, se mejora la imagen de profundidad existente y se habilita la profundidad incluso cuando la cámara no está en movimiento. También proporciona mayor profundidad en superficies con pocas características o ninguna, como paredes blancas, o en escenas dinámicas con objetos o personas en movimiento.

En las siguientes imágenes, se muestra la imagen de la 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 estarán disponibles cuando el usuario mueva su dispositivo. El algoritmo puede obtener estimaciones de profundidad sólidas y precisas a una distancia de 0 a 65 metros. Los resultados más precisos se obtienen cuando el dispositivo se encuentra entre medio metro y cinco metros de distancia de la escena real. Las experiencias que motivan al usuario a mover más el dispositivo brindan cada vez mejores resultados.

Adquiere imágenes de profundidad

Con la API de Depth, puedes recuperar imágenes de profundidad que coincidan con los fotogramas de cada cámara. Una imagen de profundidad adquirida tiene la misma marca de tiempo y campo visual intrínsecos que la cámara. Los datos de profundidad válidos solo están disponibles después de que el usuario comienza a mover el dispositivo, ya que la profundidad se obtiene del movimiento. Las superficies con pocos componentes o ninguno, como paredes blancas, se asociarán con una profundidad imprecisa.

¿Qué sigue?