SceneCapture2D capturing different scene than player camera

Hey folks, pulling my hair out here trying to figure out why this SceneCaptureComponent2D is writing slightly different color than what I see in the primary viewport when the camera is placed at almost the exact same position.

Below is an example taken from the RealisticRendering demo that demonstrates what I’m seeing. I created this by placing a SceneCapture2D and pointing it at a 1024x1024 RenderTarget, and configured for PostProcess/HDR capture. As you can see, the color is really close to the primary viewport but not quite the same. The SceneCapture looks a little bit “richer”.

I thought this might be a gamma issue but I’ve spent 10 minutes tweaking the gamma on the RenderTarget but can’t get it to match up. Is there a viewport hue/saturation setting somewhere? Another post process step outside the usual post process pipeline?

Any ideas what might be causing this?

Hi!

Assign this texture to any mesh, and see it inside scene throughout main camera. I think you see difference, because texture stored in linear color space, and you see it in texture editor without gamma correction.

So I tried that, but then I still see a different result because the mesh in the world is sent through the post processing filters of the primary view. I also tried making the material it renders with part of the post process phase so it skips those transformations but then it looks similar (slightly worse) to how it does in the texture editor.

I also tried rendering it as a HUD texture but in the HUD it looks identical to the texture editor.

I wasn’t aware there was a color-space difference between the screen and RenderTargets… Do you know where the color space is applied in code? Maybe I can re-apply the same transformations in the scene capturer?

This scena contain Post Process Volume and Actor camera with automatic Exposure. Scenecapture2D have own post process system. This very complex effect, and you need match scene post process and scenecapture post process, and adjust Target Gamma parametr in Render Target Texture. You not get handred percent equal, but it will look very similar.

SceneCapture2D inherits the same PostProcessVolume settings as the player camera because the camera is positioned within the PostProcessVolume.

Mucking with the gamma I can definitely get it closer but it’s not precisely identical. Is there something else specific to rendering to a texture that’s different from rendering to the main viewport? Are there other global output settings? And where do I find the the “target gamma” for the main viewport?

Thanks!

Hey there! Yes I know what you mean. It sucks bad! I’m currently investigating the problem in their code. It also happens in UE 4.10.4. I don’t think that a scene capture component would have to have tweaking stuff if you have the exact post process settings and position as your main camera. I mean it should have the same exact result, hence the “capture” name…unless we’re missing something. Would be great if someone from the UE4 team could shed some light on this matter because the documentation part for this component is equal to none.

@moof2k did you ever solve this problem? Epic have just added Motion Blur / Temporal AA Support to Scene Capture Actors but it means the capture source has to be Final Color LDR (unfortunately)

Like you, I can get a similar result by increasing the render target Gamma, but it feels like a really dirty approach…

Just change the category in the rt and the color type in the capture comp

What do you mean by this, where are these settings?