Messed up reflections with cube render target

The image produced by the cube render target has lots of artefacts.
I noticed that this almost disappears when you set the screen space reflection to 0.
However this gives you bad/incorrect reflections so thats not a real solution.
Is this a known bug or am i doing something wrong?
Please see the images.

Hey unrealengine123,

Take a look at your scene capture cube’s ‘Show Flags’ to enable or disable what the camera actor renders to the texture cube. These can be found by clicking on the Scene Capture Cube actor and looking within the details panel.

Scene Capture Cube - Show Flags - Max View Distance

Also take a look at the Max View Distance Override. This setting will also play a role in your specific set up.

Cheers,

Andrew Hurley

Hi Andrew, so sorry for the late reply. and thanks for the answer. However i tried that and none of it works to fix the problem :/.

Would you mind providing me with some simple reproducible steps so I can get this issue to appear on my end in a new blank project?

Thank you,

Andrew Hurley

Hi Andrew.

Sorry for the late reply, i gave up on this back then and thought id wait a couple of updates. Im back now with the latest version (4.10.4) But the issue is still the same.

To recreate simply make a new black scene,
Duplicate the standard floor mess thats alredy in there and make a wall and ceiling,
Recalculate lighting
Apply basic reflective material to all 3 surfaces.
Add scene capture cube and render target cube.
Add Sphere reflection capture and post process volume.
Enable SSR quality in post process volume to 100

You will notice that the Texture render target struggles badly with SSR.

I also tested the 2d capture cube and that works fine.
Please see images attached, which are named according to whats going on.

All i want to do is to capture a 360 image with the same quality as a normal highres screenshot from UE. Is there perhaps another way? A lens or fov setting in the normal camera such as in vray?

Thanks
Martin

Hey Martin,

I just ran a simple test on my end and did not get the same results. Our set up is a bit different, and is probably part of the reason you are not getting the results you are expecting.

Firstly, you seem to be missing a skylight, which is important for outdoor scenes and establishing a reflective environment. Be sure to keep it set to stationary and disable shadow casting. Secondly, I set my lighting quality to the ‘Production’ level as this has an affect on the overall rendering quality of your scene after running lightmass.

Thirdly, I disabled the ‘Auto-Exposure’ setting within the Post process volume by setting the Min and Max brightness to 1.0 for each value field. I also did not touch the quality levels of the SSR section and left its values at default. I also deleted my exponential height fog, but this is optional. Below you can see the results I produced with my scene set up, which are very clean and working as expected.

Reflection Scene Set Up

The fuzzy artifacts you are seeing in your capture cube are due to ‘Temporal AA’ attempting to reduce aliasing on the edges of of your objects in the scene. To correct this, and to save performance, uncheck the ‘Capture Every Frame’ checkbox in the details panel of your Scene Capture Cube actor.

Scene Capture Cube Texture Target

Here you can see I have produced a pretty clean result with the set up I am using. In my case, I create a material instance so I could play around with the Base Color, Metallic, and Roughness values to get the right reflections. Set our roughness to something like 0.1 to get a glossier feel.

Let me know if you have further questions or need additional assistance.

Cheers,

Andrew Hurley

Hi there Andrew.

Ive now tried your setup and done tests with many different options. Both in the test scene and in my project scene.
My conclusion is that its the Metallic setting in the Materials that does not go well with the scene capture and SSR Settings.

Basically you did two crucial things in your setup which bypasses the issue im trying to raise.
1, Not putting SSR setting to 100. This option makes a big visible improvement on the reflections so having it off is not really a viable option. it works great in the viewport so the issue is only in the scene capture.
2. Disabling capture every frame. This option disables SSR in the scene capture, so again, this needs to be on for any nice reflections to show up.

Ive attached several screenshots which i hope explains this better,
Please try enablingalt text this options in your scene and see if you get similar results.
Regards.

only allowed to post 5 attachments so heres the two last screenshots…

So I think you have a misunderstanding of how the reflective environment is calculated with SSR. When you disable the ‘Capture Every Frame’ it does not disable SSR, but rather takes a screenshot of the reflection environment at that moment. Increasing the quality to 100.0 does have an effect, but not to the degree in which you explained.

You also need to understand that it is not the metallic value that is the sole contributor to reflections, as it mostly relies on the ‘Roughness’ value. This is why when your materials roughness is at 1.0 you do not see any reflections. I highly suggest taking a look at our documentation on working with the reflective environment and understanding how to set it up properly so you get clean results.

Reflections

What you are seeing and reporting is the direct effect of Temporal AA and how it is calculated. This in turn adds a slight grainy jitter to the reflections of your scene and can cause them to be a bit unpleasing and unclean. As you can see in my example I provided, the SSR is still being accounted for in the Scene Capture even though it is a static image at that point.

Screen Space Reflections

You can see in the SSR documentation how Temporal AA affects the flat surface showing the reflections. Try setting your Anti-aliasing to FXAA instead to see if that helps. All in all, this is not a bug, but rather a limitation of Temporal AA and Screen Space Reflections working together.

Thank you,

Andrew Hurley

Hi.
Actually i think i misunderstood the functionality of the scene capture cube.
I thought it was supposed to act just like a regular camera, but with a 360 field of view. Thats why i was asking why im getting different visual results between what i see in the viewport or in game, and what i see from the Scene Capture/Texture Render Target Cube.

I have no issues at all with what i get in the viewport, in fact… it looks fantastic. the problem is that it shows up differently, much worse, in the Texture Render Target Cube!.

Ive already read those documentations and there is nothing there about Scene Capture Cubes

Reply to your comments:
“Capture Every Frame’ it does not disable SSR”
What i meant is that whenever i un-tick this option, it goes back to a innacurate reflection which doesnt represent the viewport. No matter if SSR is 100 or 0.
See image 5 and 6, it just toggles between that.

“Increasing the quality to 100.0 does have an effect, but not to the degree in which you explained.”
Please compare attached images. It does look like a big difference to me.
And again, it works and looks great… in the viewport and in game.

“You also need to understand that it is not the metallic value that is the sole contributor to reflections”
I never said that, i said that the metallic value is the one that seems to add all the artefacts in the Scene Capture Cube. Moreover, I never did set the roughness to 1, which im well aware of disables the reflections. When i wrote “roughness none” in the images, i meant the value node was disconnected. which then takes it back to its default value, 0.5 i assume? You can see the material settings in the left bottom corner of my screenshots.

Anyway, i take away from this that the same very nice visual results you can achieve in the Viewport, Any normal camera, and the SceneCapture2D. Is simply not possible in the Cube Render Target. Despite same visual quality settings. Correct? Are you not getting the same results as i am?

The scene capture cube does not function as a camera, but as a host to capture a cube map that can be used for ambient lighting. Primarily I used the capture cube to create a cube render target, turn that into a static texture, and then add that cubemap to the skylight.

The default value for roughness is 0.6, which means you won’t have intense reflections showing in your capture cube. I am not getting the same results you are, and my test case was very straight forward.

Thanks,

Andrew Hurley