[Question]:Trying to understand HDR, LDR, Eye adaptation

While diving more into the depth of cinematic lighting and grading I realized that I probably don’t completely understand the whole process of HDR, LDR and Eye adaptation, how it works in Rocket.
What I mean is the following, and I already know I got some stuff wrong there:

  1. Eye adaptation does it’s job
  2. Then goes “Tone mapping function” that maps the HDR range to LDR
  3. After that, the Exposure control from Eye Adaptation offsets the whole LDR range in the HDR range
  4. Scene color tint is applied
  5. List item
  6. Color grading is applied
  • How does it really work? What is the order at which things get applied? Tone mapping before Eye adaptation?
  • Docs say "We decided to stick to a simple formula and modify the resulting LDR color with a simple color lookup. As we already mapped the HDR color into a limited range we get a lot of expressibility for the dark colors and still can modify the bright colors. ", does it mean that color grading is done on LDR picture or is that about “Scene color tint” only?(https://rocket.unrealengine.com/docs/ue4/INT/Engine/Subsystems/Rendering/PostProcessEffects/ColorGrading/index.html)
  • Rocket’s HDR rendering is probably same as UE3 - 64b, but that’s for RGBA, meaning 16b per channel, right?

Thanks for any insight into the process.

Order: render scene in HDR, Histogram from HDR color, Do EyeAdaptation based on historgram and eye adaptation settings, SceneColorTint, tonemapper maps the HDR color to an LDR color, Color grading is applied to map the LDR color to another LDR color (think of photoshop color adjustments - they happen in LDR)

We usually render in 64bit, meaning 16bit per channel, alpha might be used for some purpose or we use a lower quality render target format for better performance (lower quality, maybe no alpha or little alphja channel). We want to keep this flexible.

Thanks a lot, that makes sense.

I guess I’m a bit confused with EyeAdaptation now. I have read the docs, but I’m not sure I really understand it, maybe different wording would help. Here is what I’m not sure about:

  • above you explained that EyeAdaptation goes before tonemapper
  • so the EA parameters work on the HDR values? I mean, Low and High Percent parameters are selected on the whole HDR histogram?
  • and then “Min Brightness” and “Max Brightness” just clamp the range from HDR to which the EA may adapt to?
  • the blue/white line in histogram represent the white point (brightest white) of the LDR range?

Thanks.

EyeAdaptation goes before tonemapper

yes

so the EA parameters work on the HDR values?

yes

I mean, Low and High Percent parameters are selected on the whole HDR histogram?

yes

The range the 64 bucket histogram is computed is defined by HistogramLogMin HistogramLogMax, We found a logatrithic space does give better results.

and then “Min Brightness” and “Max Brightness” just clamp the range from HDR to which the EA may adapt to?

yes

the blue/white line in histogram represent the white point (brightest white) of the LDR range?

the green block shows the area the eyadaptation is clamped in

the blue bar is the point we want to go over time (computed purely from the histogram and the settings, not based on old value)

the white bar is the current eyeadaptation which smoothly moves in the direction of the blue bar

If you see e specific point in the docs that need to be fixed - please point it out.

Thanks again for the detailed explanation.

As for the documentation, I don’t think there is something that would need fixing as such. Maybe just adding some of the extra information you gave in the above posts, for example the order in which calculations are done. That is quite useful to know when working with all those settings.