La API de estimación de iluminación proporciona datos detallados que te permiten imitar varios indicadores de iluminación cuando renderizas objetos virtuales. ARCore admite tres modos de estimación de luz:
- Inhabilitado
- Modo de intensidad ambiental
- Modo HDR ambiental
Requisitos previos
Asegúrate de comprender los conceptos fundamentales de RA y cómo configurar una sesión de ARCore antes de continuar.
Habilitar estimación de iluminación
Sigue estos pasos para habilitar la estimación de iluminación en tu app.
- Configura un proyecto de fundación de RA o un proyecto de extensiones de ARCore.
- En la pestaña Hierarchy, navega hasta XR Session Origin > AR Camera.
- En el componente AR Camera Manager, selecciona Light Estimation.
- En el menú desplegable de Light Estimation, selecciona los modos que deseas usar.
Habilitar el modo HDR ambiental
El modo HDR ambiental habilita las siguientes opciones de configuración de estimación de la luz:
- Dirección de la luz principal
- Intensidad de la luz principal
- Armónicos esféricos ambientales
Este modo se habilita automáticamente cuando se cumplen los siguientes criterios:
- Los armónicos esféricos ambientales, la dirección de la luz principal o la intensidad de la luz principal se seleccionan en el modo de estimación de luz que proporciona el administrador de cámara de RA.
- Los sondeos de entorno están habilitados en un
AREnvironmentProbeManager
- Se seleccionó una configuración de cámara compatible
Cómo habilitar el modo de intensidad ambiental
La estimación básica de la luz se habilita automáticamente cuando se selecciona el modo de intensidad ambiental en el componente ARCameraManager
.
El modo de intensidad ambiental habilita las siguientes configuraciones de estimación de la luz:
- Color ambiental
- Intensidad ambiental
Usa la información de iluminación en la escena
Una vez que obtengas la configuración de iluminación correcta, podrás iluminar los objetos virtuales de tu escena como si fueran parte del mundo real.
El componente ARCameraManager
puede generar un evento frameReceived
que estima las condiciones de iluminación de los fotogramas cuando esta estimación está habilitada. La información de los eventos frameReceived
se almacena en estructuras ARCameraFrameEventArgs
como ARLightEstimationData
.
Sigue estos pasos para cambiar los parámetros de una luz en el tiempo de ejecución.
- Crea o modifica la luz direccional existente en tu escena.
Adjunta una nueva secuencia de comandos a la luz direccional.
// Sample Lighting Estimation script Light light; void Awake () { light = GetComponent<Light>(); } void OnEnable() { if (cameraManager != null) cameraManager.frameReceived += FrameChanged; } void OnDisable() { if (cameraManager != null) cameraManager.frameReceived -= FrameChanged; } void FrameChanged(ARCameraFrameEventArgs args) { // Modify `light` parameters using ARCameraFrameEventArgs. }
Modifica esta nueva secuencia de comandos para detectar cambios en la iluminación. Si quieres ver ejemplos de cómo hacerlo, consulta las secuencias de comandos
BasicLightEstimation.cs
yHDRLightEstimation.cs
de Unity.
Usa sondeos de entorno en tu escena
Sigue estos pasos para habilitar los sondeos del entorno en tu escena.
- Habilita la posición automática en el
ARSessionOrigin
de la escena. - Agrega un componente
AREnvironmentProbeManager
aARSessionOrigin
.