I have a SceneCapture2D component that is rendering a world, but the reflection from the water is overly bright.
I removed all of the other assets and with just the water plane, the reflections were still bright. In toying with the water texture, the “Roughness” is set to zero, which seems to be causing it to be overly reflective - but I’m not sure why it’s so less prominent in the actual player view.
What could be causing the SceneCapture2D to look so different?
So you are going to want to edit the Post Processing Settings of the Scene Capture 2D Actor. There are two ways to going about doing this.
If you would like to have your post processing done on a per player camera basis, and not the world volume, you can modify the ‘Auto-Exposure’ setting for the darkness you are seeing by setting the Min and Max Brightness to 1.0.
Then modify the ‘Screen Space Reflections’ min roughness setting for the specular highlights of the water’s surface. The higher the value the less aggressive your specular highlights will appear.
It seems you are also using the ‘LDR’ or Low Dynamic Range instead of of the ‘HDR’ or High Dynamic Range for the Capture Source. HDR supports things like bloom and auto-exposure. You will want to use HDR for the scene capture actors to have an identical image to your active player camera.
As the second approach instead of modifying the values, you can also just try setting the ‘Post Process Blend Weight’ of your Scene Capture Actor to 0.0. This could be an easier fix, but eliminates the ability to control the Post Processing of those Scene Capture Actors.
If you come across more questions or need further help, please let me know.
My ultimate goal here is to replicate the player’s camera as much as humanly possible.
Modifying Auto-Exposure’s Min and Max brightness didn’t have a discernible effect on the LDR
There wasn’t a “Min” roughness, but modifying the “Max” roughness didn’t seem to have an effect on the “sparkly-ness” of the water on the LDR camera.
The settings you suggested are applied to the LDR SceneCapture2D images below - including Post Process Blend Weight = 0.
HDR vs. LDR
Changing to HDR meant that post-process effects attached to the camera (lens flare for example) seemed to not being captured by the SceneCapture2D.
HDR is definitely less sparkly - but it still does not look quite as soft as it does in the player camera (load the full PNG to detect this). It’s easier to notice in the HDR, but It appears that the water reflection is being blurred at a distance in the player camera, but not in the SceneCapture2D. This may be causing the “hard” look in the HDR SceneCapture2D?
HDR seems to be darker overall (easiest to tell by looking at the dark blue sky in the HUD and the lighter blue sky behind it in player camera. I read somewhere that the SceneCapture2D are not gamma corrected. I tried adding a “Power” node to the material with the Base=Texture and various constants for the exponent. I could get a little closer, but nothing that looked “right”. I may have been on the right track and just need to try more constants… but it seemed the closer I got to the sky matching, the further away from the shadow matching I was.
LDR is the Scene Capture 2D before post processing, so using HDR is going to give you the closest results to your players camera.
What I would do is make sure your Scene Capture 2D actor matches whatever the world Post Process Settings/Active Player Camera Post Process settings. This can be confusing as there is a World Post Processing (usually a volume) and then you have your player’s Camera Post Processing settings. There are a lot of ‘Show Flags’ within the Scene Capture 2D actor as well.
Go through all of these very carefully and get the settings to match up. Keep in mind, the scene capture resolution and size can be changed, which will affect the overall performance and quality of the image. Working with Scene Capture 2D’s need to be handled carefully as they can quickly bog down your project, since you are essentially rendering the scene again.
The shinning spark is caused by “realtimeupdate” flag, you can add some code into CreateSceneRenderer() in SceneCaptureRendering.cpp.
“ViewFamily.bRealtimeUpdate = true;”
I encountered this problem too and debugged it for 4 hours. The reason in my case turned out to be very silly: I’d put SceneCapture2D as a part of actor blueprint. When I placed that actor in the scene, I scaled it to 0.1 to make it look tiny. This apparently didn’t worked. Along with this, make sure LDR is used (instead of HDR) and it looks pretty good now.