Exposure assist tools

As I find myself doing more character lighting related work in Unreal, I start to miss the tools I tend to use when I shoot real video. So I decided to just build them. Some of them at least.

The basic idea is that you can’t trust your eyes to know if something is bright enough, because things like your monitor settings or the way your room is lit affect your perception. So you use tools that tell you exactly what is going on.

The first one I implemented is the Zebras (Zebra patterning - Wikipedia) :

You set a luminance threshold and any part of the image whose luminance is above that threshold will have a zebra pattern overlaid onto it.

You usually use this to be warned of overexposure, but you could also use as an indicator for when skin tones reach the desired level of brightness.

If you want to go up a level, you might want to look at false colour, which colour-codes the image based of the pixel’s luminance. The idea is once again to easily identify over and underexposed areas or any other range of interest.

There are many ways to do false colour, but I went for the key used in the Flanders Scientific monitors which goes like this:

  • luminance is coded as a gradient from blue for black, to red for white, passing through green at the mid point.
  • underexposure threshold in black
  • overexposure threshold in white
  • key mid range in grey

The idea is to set your mid range wherever you want it, and then dial in your exposure until the part you’re interested in (let’s say a character’s face) turns grey. The gradient is also a very good way of telling you how even your lighting is.

I made these as post process materials, so they need to be added to a post process volume or a camera to be visualised.

I’d like to make them available as some sort of a debug view, but I haven’t looked into it yet.

The caveat for this implementation is that I’m not entirely certain I’m computing the luminance correctly. At the moment I’m doing this by desaturating the scene using the Rec.709 coefficients, which seems to yield appropriate results, but I’m not sure whether SceneTexture returns linear of gamma-encoded colours after Tone Mapping.

2 Likes

I have a similar set locally, but I just like that someone nerded out about all of this too. You’re rad.

Haha, thanks. I was looking at focus peaking as well, but the DepthOfFieldFunction node in the material editor doesn’t work as I’d expect it.

Have you looked into localized tonemapping by any chance?

Great way of setting exposure :smiley: Thanks for the tip!
How are you desating the image, By math in material or with a lookuptable?
Guess you are right on the gamma-linear deal since it seems right and it should be a big difference if its off =P
Btw, I’m probably wrong but should you not use PostProcessInput0 instead of SceneColor in post process materials? New to this :stuck_out_tongue:

No, not looked at localized tonemapping.

And yes it’s PostProcessInput0, but you access is it with the SceneTexture node (which is what I meant when I said SceneColor, fixed the OP).

Desaturation is done using the desaturation material node.

Guess there is a lot of ways to turn color in to how bright the eye perceives them. Don’t know which one is the correct one? If you want to use a more complex function it could be imported from an external application as a LUT. My guess is that the desaturation material node in Unreal is optimized for speed. Any color science guys here? :stuck_out_tongue:

Am I missing something or is there no way of downloading the PP materials? Any update on this?

I’d love to get my hands on anything that makes exposure tweaking less of a struggle. The current controls aren’t very intuitive, imo.

Have you managed to distribute these PP-materials?

Can i purchase it anywhere?

EDIT:
I just noticed this user hasn’t been active since 2017 :frowning:

That was a great idea and I hope Epic would consider implementing such tools asap, specially since those are a must for actual filmmakers that approach Unreal Engine

2 Likes

Does the UE5 has a false color function?

No it doesnt, but you can make it via post process.

Which post process, or how? Do you mean in a color grading soft which has false color? Can you be more specific? Thx

1 Like