SceneCapture does not match main camera when inside a post process volume. Why?

UE5.5.1
I have setup a SceneCapture and a PlayerCamera in the same location.
The SceneCapture is using FinalColorHDR as its capture source.
I created a simple negate post processing material, applied it to a volume in the world and place both cameras inside.

The output of the two is different, why?
It appears to be how the post process material is handled, but after hours of source code spelunking, I haven’t found the cause.


PlayerCamera


SceneCapture FinalColorHDR (not LDR, it looks worse)


PP_NegateMaterial

Any help would be greatly appreciated!!! :slight_smile:

It is quite difficult to say the exact reason why these two outputs are so different, but I found that setting the Blendable Location parameter in a post process material to a value other than Scene Color After Tonemapping can give a much better color match (if you look at the descriptions of the available options for Blendable Location, you may notice that in all cases except for the Scene Color After Tonemapping option, the input and output are in linear color space, and this may be the cause of the problem).

So in my example I set the Blendable Location to Scene Color Before Bloom and changed the material a bit to have more control over the output (before tone mapping, SceneTexture node Color values ​​can be much less or greater than 1.0):

In the SceneCapture2D actor I set Capture Source to Final Color (with tone curve) in Linear sRGB gamut, and in the render target I set Render Target Format to RGBA8 SRGB (note that RGBA8 may produce color banding in shadows, but of course formats with higher bit depths can give better results):

This recent video about the color pipeline of a pixel might also be helpful.

1 Like

Thank you, That is a MUCH closer match.

Another bit of weirdness I discovered, if you plan to use the RT itself inside of another PP material, you have to turn off the scene capture’s tonemapper to get it to match. This causes the RT itself to no longer match the scene, but it will match after being ran through the PP material (which also needs to be set to before bloom).

I really hope I just missed something bc this is getting convoluted.

Also thanks for the video, I enjoyed it! Very educational!