API
HDR Color Picker

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 es renderizada en un búfer de imagen HDR que puede acomodar los valores de píxel afuera del rango 0..1. Este búfer es luego post-procesado usando efectos de imagen como HDR bloom. El efecto de imagen tonemapping es lo que convierte la imagen HDR a una imagen de bajo rango dinámico (LDR) para ser enviada a que se visualice. La conversión a LDR debe ser aplicada en algún punto del canalizado(pipeline) del efecto de imagen pero no necesita ser el último paso si los efectos de imagen LDR-únicamente son aplicados después. Por convieniencia, algunas efectos de imagen pueden ser automáticamente convertidos a LDR después de aplicar un efecto HDR ( vea el Scripting a continuación).

Tonemapping(Mapeo de Tonos)

El Mapeo de Tonos es el proceso del mapeo de valores HDR al rango LDR. Hay muchas diferentes técnicas, y lo que es bueno para un proyecto puede no ser lo mejor para otro. Una variedad de efectos de imagen del Mapeo de tonos han sido incluidos en Unity. Para utilizarlos, seleccione Assets -> Import Package -> Image Effects (Pro Only) seleccione la cámara en la escena luego seleccione Component -> Image Effects ->ToneMapping una descripción detallada de los tipos de Mapeo de Tonos puede ser encontrada en image effects documentation.

Una escena brilla excepcional renederizada en HDR. Sin el mapeo de tonos, la mayoría de los píxeles parecen estar afuera del rango.
Una escena brilla excepcional renederizada en HDR. Sin el mapeo de tonos, la mayoría de los píxeles parecen estar afuera del rango.
La misma escena que arriba. Pero esta vez, el efecto de mapeo de tonos está trayendo la mayoría de las intensidades a un rango más plausible. Tenga en cuenta que el mapeo de tonos incluso se puede mezclar entre arriba y esta imagen simulando así el carácter adaptativo de los medios de captura (e.g. ojos, cámaras).
La misma escena que arriba. Pero esta vez, el efecto de mapeo de tonos está trayendo la mayoría de las intensidades a un rango más plausible. Tenga en cuenta que el mapeo de tonos incluso se puede mezclar entre arriba y esta imagen simulando así el carácter adaptativo de los medios de captura (e.g. ojos, cámaras).

HDR Bloom y Glow

El uso de HDR permite mucho más control en el procesamiento posterior. El bloom LDR tiene una efecto secundario desafortunado de desenfocar muchas áreas de la escena incluso si la intensidad de su píxel es menor que 1.0. Al usar HDR es posible bloom áreas dónde la intensidad es mayor que uno. Esto lleva a un resultado mucho más deseable con sólo los elementos súper brillantes de una escena sangrando a unos píxeles vecinos. Los efectos de imagen integrados ‘Bloom and Lens Flares’ ahora también soportan HDR. Para adjuntarlo a una cámara seleccione Assets -> Import Package -> Image Effects (Pro Only) seleccione la cámara en la escena y luego seleccione Component -> Image Effects ->Bloom una descripción detallada del efecto ‘Bloom’ puede ser encontrada en image effects documentation.

Los reflejos de sol en esta escena tienen unos valores de intensidad mucho mayores que 1.0. Bloom solamente puede recoger y hacer brillar estas partes si la cámara tiene HDR habilitado, por lo tanto captura estas intensidades
Los reflejos de sol en esta escena tienen unos valores de intensidad mucho mayores que 1.0. Bloom solamente puede recoger y hacer brillar estas partes si la cámara tiene HDR habilitado, por lo tanto captura estas intensidades
La ventana del carro quedará sin brillo si la cámara no tiene HDR habilitado. La única manera de agregar brillo es bajando el umbral de intensidad, pero luego las partes no deseadas de la imagen van a comenzar a brillar también.
La ventana del carro quedará sin brillo si la cámara no tiene HDR habilitado. La única manera de agregar brillo es bajando el umbral de intensidad, pero luego las partes no deseadas de la imagen van a comenzar a brillar también.

Ventajas de HDR

  • Los colores no se pierden en zonas de alta intensidad
  • Un mejor soporte bloom y de glow
  • Reducción de las bandas en zonas de iluminación de baja frecuencia

Desventajas de HDR

  • Utiliza búferes de Floating Points (la renderización es más lenta y requiere más VRAM)
  • No hay soporte de anti-aliasing (pero usted puede utilizar Anti-Aliasing image effect para suavizar las esquinas)
  • No es soportado en todo el hardware

Notas de Uso

Forward Rendering

En el modo Forward Rendering, HDR es solamente soportado si usted tiene un efecto de imagen presente. Esto se debe a unas consideraciones de rendimiento. Si usted no tiene ningún efecto de imagen presente, entonces ningún mapeo de tonos existiría y un truncamiento de intensidad se produciría. En esta situación la escena será renderizada directamente a el backbuffer dónde el HDR no es soportado.

Deferred Rendering

En modo HDR el búfer de luz prepass también es atribuido como un búfer floating point. Esto reduce las bandas en el búfer de iluminación. HDR es soportado en deferred rendering así sea que ningún efecto de imagen esté presente.

Scripting

El atributo ImageEffectTransformsToLDR puede ser agregado a un script de efecto de imagen para indicar que el búfer deseado debe estar en LDR en vez de HDR. Esencialmente, esto significa que un script puede automáticamente convertirse en LDR después de aplicar su efecto de imagen HDR.

See also

HDR Color Picker.

API
HDR Color Picker