Guías específicas de la plataforma
Android (Kotlin/Java)
NDK de Android (C)
Unity (AR Foundation)
Unreal Engine
Una parte clave para crear experiencias de RA realistas es conseguir la iluminación correcta. Cuando a un objeto virtual le falta una sombra o tiene un material brillante que no refleja el espacio circundante, los usuarios pueden sentir que el objeto no encaja del todo, incluso si no pueden explicar por qué. Esto se debe a que los humanos perciben de forma inconsciente indicadores sobre cómo se iluminan los objetos en su entorno. La API de estimación de iluminación analiza imágenes determinadas para detectar esos indicadores y proporciona información detallada sobre la iluminación de una escena. Luego, puedes usar esta información cuando renderices objetos virtuales para iluminarlos en las mismas condiciones que la escena en la que se encuentran, lo que mantiene a los usuarios centrados y comprometidos.
Señales de iluminación
La API de Lighting Estimation proporciona datos detallados que te permiten imitar varias indicaciones de iluminación cuando se renderizan objetos virtuales. Estas indicaciones son sombras, luz ambiental, sombreado, reflejos especulares y reflexiones.
Sombras
Las sombras suelen ser direccionales y les indican a los usuarios de dónde provienen las fuentes de luz.
Luz ambiental
La luz ambiental es la luz difusa general que proviene de todo el entorno y que hace que todo sea visible.
Sombreado
La sombra es la intensidad de la luz. Por ejemplo, diferentes partes del mismo objeto pueden tener diferentes niveles de sombreado en la misma escena, según el ángulo en relación con el observador y su proximidad a una fuente de luz.
Reflejos especulares
Los reflejos especulares son los fragmentos brillantes de las superficies que reflejan una fuente de luz directamente. Los aspectos destacados de un objeto cambian en relación con la posición de un observador en una escena.
Reflejos
La luz rebota de las superficies de manera diferente según si estas tienen propiedades especulares (altamente reflectantes) o difusas (no reflexivas). Por ejemplo, una bola metálica será muy especular y reflejará su entorno, mientras que otra pintada de un gris mate opaco será difusa. La mayoría de los objetos del mundo real tienen una combinación de estas propiedades: piensa en una bola de bolos fregada o en una tarjeta de crédito bien usada.
Las superficies reflectantes también captan colores del entorno ambiental. El color de un objeto puede verse afectado directamente por el color de su entorno. Por ejemplo, una bola blanca en una habitación azul tendrá un tono azulado.
Modo HDR ambiental
Estos modos constan de APIs independientes que permiten realizar una estimación detallada y realista de la iluminación para la iluminación direccional, las sombras, las zonas brillantes especulares y los reflejos.
El modo HDR ambiental usa el aprendizaje automático para analizar las imágenes de la cámara en tiempo real y sintetizar la iluminación ambiental para admitir la renderización realista de objetos virtuales.
Este modo de estimación de iluminación proporciona lo siguiente:
Luz principal direccional: Representa la fuente de luz principal. Se puede usar para proyectar sombras.
Armónicos esféricos ambientales: Representa la energía de luz ambiente restante en la escena.
Un mapa de cubos HDR Se puede usar para renderizar reflejos en objetos metálicos brillantes.
Puedes usar estas APIs en diferentes combinaciones, pero están diseñadas para usarse juntas y lograr el efecto más realista.
Luz direccional principal
La API de luz direccional principal calcula la dirección y la intensidad de la fuente de luz principal de la escena. Esta información permite que los objetos virtuales de tu escena muestren reflejos especulares bien posicionados y proyecten sombras en una dirección coherente con otros objetos reales visibles.
Para ver cómo funciona, considera estas dos imágenes del mismo cohete virtual. En la imagen de la izquierda, hay una sombra debajo del cohete, pero su dirección no coincide con las otras sombras de la escena. En el cohete de la derecha, la sombra apunta en la dirección correcta. Es una diferencia sutil, pero importante, y ancla el cohete en la escena porque la dirección y la intensidad de la sombra coinciden mejor con otras sombras de la escena.
Cuando la fuente de luz principal o un objeto iluminado están en movimiento, el reflejo especular en el objeto ajusta su posición en tiempo real en relación con la fuente de luz.
Las sombras direccionales también ajustan su longitud y dirección en relación con la posición de la fuente de luz principal, tal como lo hacen en el mundo real. Para ilustrar este efecto, considera estos dos maniquíes, uno virtual y el otro real. El maniquí de la izquierda es el virtual.
Armónicos esféricos ambientales
Además de la energía de la luz en la luz direccional principal, ARCore proporciona armónicos esféricos, que representan la luz ambiental general que proviene de todas las direcciones de la escena. Usa esta información durante la renderización para agregar indicadores sutiles que destaquen la definición de objetos virtuales.
Considera estas dos imágenes del mismo modelo de cohete. El cohete de la izquierda se renderiza con información de estimación de iluminación detectada por la API de luz direccional principal. El cohete de la derecha se renderiza con información detectada por las APIs de la luz de dirección principal y los armónicos esféricos ambientales. El segundo cohete tiene claramente más definición visual y se integra mejor en la escena.
Mapa de cubo HDR
Usa el mapa de cubos HDR para renderizar reflejos realistas en objetos virtuales con brillo medio a alto, como superficies metálicas brillantes. El mapa de cubos también afecta la sombreación y la apariencia de los objetos. Por ejemplo, el material de un objeto especular rodeado de un entorno azul reflejará tonos azules. El cálculo del mapa de cubos HDR requiere una pequeña cantidad de procesamiento adicional de la CPU.
Si debes usar el mapa de cubos HDR depende de cómo un objeto refleje su entorno. Debido a que el cohete virtual es metálico, tiene un componente especular fuerte que refleja directamente el entorno que lo rodea. Por lo tanto, se beneficia del cubomapa. Por otro lado, un objeto virtual con un material mate gris apagado no tiene ningún componente especular. Su color depende principalmente del componente difuso y no se beneficiaría de un mapa de cubos.
Se usaron las tres APIs de HDR ambiental para renderizar el cohete que se muestra a continuación. El mapa de cubos HDR habilita los indicadores reflectantes y destaca aún más que fijan el objeto por completo en la escena.
Este es el mismo modelo de cohete en entornos con diferentes iluminaciones. Todas estas escenas se procesaron con información de las tres APIs, con sombras direccionales aplicadas.
Modo Intensidad ambiente
El modo Intensidad ambiental determina la intensidad promedio de los píxeles y los escalares de corrección de colores para una imagen determinada. Es un parámetro de configuración aproximado diseñado para casos de uso en los que la iluminación precisa no es fundamental, como los objetos que tienen iluminación integrada.
Intensidad de píxeles
Captura la intensidad de píxeles promedio de la iluminación en una escena. Puedes aplicar esta iluminación a un objeto virtual completo.
Color
Detecta el balance de blancos de cada fotograma individual. Luego, puedes corregir el color de un objeto virtual para que se integre mejor en el color general de la escena.
Pruebas de entorno
Las sondas de entorno organizan las vistas de la cámara de 360 grados en texturas de entorno, como mapas de cubos. Estas texturas se pueden usar para iluminar objetos virtuales de manera realista, como una bola de metal virtual que "refleja" la habitación en la que se encuentra.