Skip to content

Latest commit

 

History

History
48 lines (25 loc) · 1.69 KB

HDR_Display.md

File metadata and controls

48 lines (25 loc) · 1.69 KB

General information

Non-HDR (RGBA8 / RGB10A2 formats)

  • Color values above 1.0 are clamped to 1.0.

HDR (RGBA16F format)

  • Display uses internal tonemapping to convert color values above 1.0 to another color, more often the color tends to white.
  • The transition to white depends on luminance, green is the brightest and turns white earlier.
  • There is no way to programmatically find out the characteristics of the built-in tone mapping, so it's better to use your own and adjust the brightness of the screen with values exceeding 1.0.

Monitor

Samsung monitor with VA matrix with a brightness of 1000 nit (cd/m^2^). Surface with RGBA16F_Extended_sRGB_linear mode.

  • An analog of ACES tonemapping is used, so blue turns into pink, and only then into white.

Smartphone

ASUS smartphone with AMOLED screen with a brightness of 800 nit. Surface with RGBA16F_Extended_sRGB_linear mode.

  • Color value range 0..100 on monitor is approximately the same as range 0..24 on the smartphone.
  • Smartphone uses much simpler tonemapping which doesn't change the blue color.

Surface format in Engine

Sources: FeatureSetEnums.h - ESurfaceFormat

RGBA16F_Extended_sRGB_linear

Backward compatible with sRGB in range [0..1] but allows to use values above 1.0. Color (1,1,1) has brightness 80 nit. Allowed values up to 125.0 which has 10 000 nit brightness.

BGRA8_sRGB_nonlinear and RGBA8_sRGB_nonlinear

sRGB mode, RGB or BGR depends on platform.

RGB10A2_sRGB_nonlinear

sRGB mode with increased precision to 10bit per channel.