How to Play Video with Accurate Brightness in Unreal Engine

Hello.
I created a simple project with a video material applied to the inside of a sphere for 360 degree video playback in the Unreal Engine.
The video plays fine, but the brightness is not accurate.
It is brighter than the original video. So the video will overexpose.
The Post Process Volume grading adjustment is very severe and difficult.
Do you have any ideas?

There are only spheres, Player Start actor, Post Process Volume in the world.
※Post Process Volume is not set.
outliner

↓The material is set to Unlit
unlit

Windows 10 x64
Unreal Engine 4.27.2
Oculus Quest 2

Media Info from Media Player

Player: WmfMedia

Play Rates
    Thinned: -128.0 to 128.0
    Unthinned: 0.0 to 3.0

Capabilities
    Scrubbing: Yes
    Seeking: Yes

Stream 1
	Type: Video
	Format 0
		Codec: H264
		Frame Rate: 29.97 fps
		Frame Rate Range: 29.97 - 29.97 fps
		Dimensions: 3840 x 3840

Stream 0
	Type: Audio
	Format 0
		Codec: MPEG HEAAC
		Channels: 2
		Sample Rate: 48000 Hz
		Bits Per Sample: 16

Video decoded on GPU

A couple of things to consider:

  1. Unreal defaults to an exposure compensation of 1 so even if you disable auto-exposure, it will still be a bit over-exposued unless you set the compensation to 0.
  2. Unreal uses the ACES Filmic tonemapper, and people frequently complain that the filmic tonemapping curve is too high contrast. You can try adjusting the tonemapper settings to match the legacy ones listed in the documentation to see if you like those results more.

If you’d rather not disable auto-exposure then you can keep the display consistent at any exposure by dividing the emissive by the eye adaptation node before plugging it into the emissive output

UE4_DivideByEyeAdaptation

2 Likes

Hello, Arkiras.
It worked perfectly!
Thank you so much.

I added Eye Adaptation and Divede to the material and changed to Legacy Tone Mapper and got the result I was looking for.

I added the following text to “[ProjectFolder]\Config\DefaultEngine.ini” to change to Legacy Tone Mapper.

[SystemSettings]
r.TonemapperFilm=0

It seems that when setting the tone map in UE5, it is set in PostProcess Volume.
If this helps anyone. :smile:

1 Like

Your solution is awesome, finally the correct colors are back. And on top of that, your trick solves a different problem too :slight_smile: In some experiments, i had some unlit sprites hovering above a moving object (they were part of their blueprint, so they moved along with it, just were unlit and shouldn´t interact or react with lighting), and they started smearing and creating many artifacts (way more, than you would expect even from motion blur, if its active).
Turns out, that your solution here reduces those artifacts too, no more smearing, or at least, no more noticeable smearing for those sprites. :partying_face:

2 Likes

Changing “Lens>Image Effects>Vignette Effect Strength” to 0 and “Lens>Bloom>Threshold” to 0 in the post process volume may produce even better results.

Also I found a web page with very detailed instructions on how to set it up.

Please use Google Translate as the site is in Japanese.

Maybe, but that would affect everything in the render, even those parts, that are perfectly fine, and should have those bloom and vignette effects. :slight_smile:

1 Like