Renderizado HDR(Imágenes de Alto Rango Dinámico) en Unity
En un renderizado estándar, los valores rojo, verde y azul para un píxel son cada uno representados por una fracción en un rango de 0..1, dónde 0 representan intensidad cero y 1 representa la intensidad máxima para la pantalla del dispositivo. Si bien esto es sencillo de usar, esto no refleja con precisión la manera en que la iluminación funciona en una escena de la vida real. El ojo humano tiende a ajustar las condiciones de iluminación locales, para que un objeto que parece blanco en una habitación con poca luz pueda de hecho ser menos brillante que un objeto que parezca gris en plena luz del día. Adicionalmente, el ojo es más sensible a las diferencias de brillo en el extremo inferior del rango que en el extremo superior.
Más efectos visuales convincentes pueden ser logrados si la renderización está adaptada para dejar que los rangos de los valores de píxel reflejen con más precisión los niveles de luz que estarían presentes en una escena real. Aunque estos valores en ultimas necesitan ser asignados de nuevo al rango disponible en la pantalla del dispositivo, cualquier calculación intermedia (tal como los efectos de imagen de Unity) va a dar un resultado más autentico. Permitir que la representación interna de los gráficos utilicen valores afuera del rango 0..1 es la esencia del renderizado Imágenes de Alto Rango Dinámico (High Dynamic Range) (HDR)
Trabajando con HDR
HDR es habilitado por separado para cada cámara utilizando un ajuste en el componente de la Cámara:-
Cuando HDR está activo, la escena se renderiza en un búfer de imagen HDR que puede acomodar valores de píxeles fuera del rango 0..1. Este búfer se usa luego por efectos de postprocesamiento como el efecto Bloom en la Pila de postprocesamiento. La imagen HDR luego se convierte en la imagen estándar de bajo rango dinámico (LDR) que se enviará para su visualización. Esto generalmente se hace a través de Tonemapping, parte de la tubería Clasificación de color. La conversión a LDR se debe aplicar en algún punto del proceso posterior al proceso, pero no es el paso final si los efectos de posprocesamiento solo LDR se aplicarán después. Para mayor comodidad, algunos efectos de posprocesamiento se pueden convertir automáticamente a LDR después de aplicar un efecto HDR (consulte las secuencias de comandos a continuación).
Tonemapping es el proceso de mapear valores HDR nuevamente dentro del rango LDR. Existen muchas técnicas diferentes, y lo que es bueno para un proyecto puede no ser el mejor para otro. Se ha incluido una variedad de técnicas de mapeo de tonos en la Pila de post-procesamiento. Para usarlos, puede descargar la ** pila de postprocesamiento ** desde Asset Store. Puede encontrar una descripción detallada de los tipos de asignación de tonos en la documentación de Color Grading documentation.
Ventajas de HDR
Desventajas de HDR
Notas de Uso
En el modo de reproducción directa, HDR solo se admite si tiene un efecto de posprocesamiento presente. Esto se debe a consideraciones de rendimiento. Si no tiene un efecto de posprocesamiento presente, no existirá ningún mapeo de tonos y se producirá un truncamiento de intensidad. En esta situación, la escena se procesará directamente en el backbuffer donde HDR no es compatible.
En el modo HDR, el búfer de iluminación también se asigna como un búfer de punto flotante. Esto reduce las bandas en el búfer de iluminación. HDR se admite en la representación diferida incluso si no hay efectos de posprocesamiento presentes.
El atributo ImageEffectTransformsToLDR se puede agregar a un script de efectos de procesamiento posterior para indicar que el búfer de destino debe estar en LDR en lugar de HDR. Esencialmente, esto significa que una secuencia de comandos se puede convertir automáticamente a LDR después de aplicar su efecto de posprocesamiento HDR. Consulte Escribir efectos de posprocesamiento para obtener más detalles.