SceneCapture 2D and RenderTarget blurs everything in motion

Hey guys,
I’m currently trying to build a Camera Feed, which is shown on the HUD. I’ve got that working so far, but everytime I set the Texture in the details of the SceneCapture all my assets, which are in motion get very very blurry. As soon as I set the Texture to None the blurs disappears, so it has to be sth about the Texture. I looked inside the “BlueprintExamples”-Cameras and set my Texture exactly like they are in the examples.
What can I do to get rid off the Blur? I tried changing “Max Amount” of Post Processing but that changed nothing.
To show you what I’m talking about. Here is a short video showing my point.

Maybe one of you know how to fix that issue.

Thank you in advance Max

Hey Max,

Be sure to create a post processing volume for you scene and either adjust the bounds of the box to sit around your scene or just click the unbound option within the post process detail panel. Within the post processing volume set the motion blur Amount and Max both to 0.0. This should fix the visual blur you are seeing. What is happening is that because your Scene Capture 2D is being blended with your post processing volume in your scene it must be fixed within an external value. Let me know if this helped solve your issue!

Thanks,

Thank you, Andrew! That helped perfectly :slight_smile:
I was just setting the “Amount” and “Max” inside the SceneCapture2D Details, which didn’t help. Using a PostProcessing Volume was the solutio.

Hi ,
I have the exact same problem but I don’t get your proposed solution . Doing so completely disables motion blur and that’s not what I want. I have a scenecapture2d actor that I use to calculate reflections on the car. When the car moves (even if it’s stationary relative to the camera) it gets blurred. If I remove the render target from scenecapture2d the problem disappears. Setting the amount of blur on the PostProcessing Volume obviously resolve the problem but it also disables motion blur for all objects…am I missing something?

What you will want to do is set up priority within your ‘Post Process Volumes’ so that when the bounds of the volumes overlap, the post process with the higher priority will be rendered instead.

In your case, you could set up a Blueprint with a ‘SceneCapture2D’ component as the root. Then add a ‘Post Process Volume’ component and set the priority to a value that is higher than your ‘Global Post Process.’ This will allow you to keep your world ‘Motion Blur’ when not viewing the scene through the ‘SceneCapture2D’ component.

Here is an example of how overlapping ‘Post Process Volumes’ can have priority set so one takes priority over the other.

Overlapping Volumes Wireframe Top-Down

MyCharacter Standing in the Overlapping Area

The default priority of a Post Process Volume will be set to 0 value. Changing one of these volumes to priority value of 1 will effectively render over the other.

I hope this helped resolve your issue, but if you are still a bit lost or need help let me know.

Cheers,

Hi Andrew,
thank you a lot for your detailed explanation. I still don’t get why this is happening though and I would like to understand the reason that originates the problem rather than fixing it without knowing why. First of all I’m not using a ‘SceneCapture2D’ but a ‘SceneCaptureCube’, sorry, my bad.

Anyway its main purpose is to render the world to a cube map that is then used by my materials to calculate reflections on translucent objects and on the car body. The capture cube is placed inside the player controlled car (skeletal mesh rendering is disabled on the scene capture cube) and it moves along with it so that part of the surrounding area is reflected on the car.

You say “This will allow you to keep your world ‘Motion Blur’ when not viewing the scene through the ‘SceneCapture2D’ component” but I’m not viewing the scene “through” the capture cube, I just use a normal camera attached to a spring arm.

Why the sole presence of a “SceneCaptureCube” with a valid render target (setting the render target to null eliminates the problem as stated by PT_Max) should cause all the objects in the scene to get blurred regardless of their onscreen velocity?

It seems to me that the presence of a “valid” capture cube invalidates something during rendering that lead to miscaIculations during the motion blur phase. (by the way you can re-create this problem from scratch on every UE project just by adding a capture cube + a cube render target).

I could upload a video tomorrow when I’ll get back to the office, if needed. If you could shed further light on this matter I would greatly appreciate it. Thank you.

Even if you are viewing your world through the characters camera while inside of the car, the post processing will still be visible.

I created a simple test ‘Blueprint’ with what you are essentially explaining. The process of setting the priority will be the same whether it is a ‘SceneCapture2d’ or a ‘SceneCube’ component.

I will do my best to explain how this works. Let’s say you have your ‘Global Post Process Volume’ in your level. This volume is set to unbound with a 0 priority within the settings. Within this volume you have your "Motion Blur’ to your desired values.

Now within your character blueprint of which you are viewing the inside of the car, you can create another ‘Post Process Volume’. Now you set the priority to 1 and the ‘Motion Blur’ to nothing (or greater); however you are trying to have it look.

Now when playing the game and your camera goes outside (third person car camera for example) of the car, the ‘Global Post Process’ settings will take affect because you are no longer controlling the “Blueprint” in which the other ‘Post Process’ dominant priority has been set.

If you are still a bit confused, try checking out the ‘Content Examples’ project in the Learn tab of the Launcher. This has not only examples for Post Process Volumes, but also levels providing examples of Scene Cube Components.

I hope this clarifies!

Cheers,

Hi Andrew,
please excuse me for my insistence but I think there’s a misunderstanding. You are assuming that there’s a “camera inside of the car” and such but I’ve never said so. I still think that what happens isn’t normal at all. To clarify I invite you (and whoever else is interested in this problem) to try the following on the VehicleGame demo that comes with UE4. First of all open it, search for the PostProcessVolume in the scene and set the “blur amount” to 1.0 then press play.

Everything’s normal, right? While you race the car is sharp while the road is blurred. Now press stop, in the Modes panel search for a “Scene capture cube” and drag it onto the scene. Then right click in the file view of your content browser and create a “cube render target” found under “materials and textures”. Now press play again, everything’s still fine.

Press stop again, select the Scene Capture Cube that you’ve just created in your scene, find the “texture target” field and set it to the newly created “cube render target”. Now press play and there you go: you are the owner of a wonderfully blurred car. Now I don’t think that the sole presence of a scene capture cube (we’ve just created it, no entities in the game are using it) should cause this problem.

My theory is that velocity vectors calculated during the scene capture are used when computing the final motion blur instead of those relative to the current camera. I don’t see any other reasons why this should happen and, even if there is a reason, this should be well documented because it’s not something that you would expect…
P.S. I’m referring to UE 4.6

Hi Andrew,

no problem and glad that the problem has been fixed on v4.7. Thank you for your assistance.

Hey again Gastel71,

So after some more research and further investigating I discovered this issue was reported and already fixed with the most current 4.7 preview 4 build of the Engine. This was reported using a ‘Scene Capture 2D’ component, but the functionality is similar to that of the cube component.

I really appreciate your patience with my attempting to understand the issue, and we always appreciate the in depth explanations and reproducible steps users can provide.

You were right is assuming this is not the correct outcome of adding a ‘Scene Capture Cube’ to your level. If you are going to test this in the preview build, we always recommend using the ‘Open a Copy’ route versus the ‘Convert-in-Place’ option.

Thank you again for your report and if you have any further inquiries or questions let us know!

Cheers,

Hi, I’m new to unreal and Im facing similar problems and I’m abit confused on where is the Post Process Volume to be placed at.The ship 3d model still looks blur after adding in the post process volume.
I’m currently using version 4.7.6 of the engine

44238-capture.png

44240-capture3.png

Hello Anoimus,

Is this a 2D or 3D Project?

If you set your volume to ‘Unbound’ the placement of the actor is not as important as its priority. If you have multiple unbound volumes, then the one with the highest priority will take precedent over the lower ones.

Be careful when mixing many post process volumes as this can become a heavy performance hit if not set up properly. If you are having trouble understanding the settings within the Post Process Volumes, or need a bit more insight on how to set them up correctly, take a look at the Post Process map within the Content Examples project.

Post Processing

Let me know if you are still having troubles and I will be glad to assist you further.

Regards,

Its a 3D project but what I want to do is to display a Captured image of a 3d object I have in my world on my UI. Currently Im only using one post process volume. Do I have to put the cameras inside the PostProcessVolume?

Hey Anoimus,

I am assuming you are using a SceneCapture2D Component to a Render Target Texture, and then applying this texture as an Image within UMG?

If this is the case, go into your render target and change the resolution and compression settings to increase the quality of your image. Check the images below against your own set up and be sure to check the places I have highlighted for post process control as well as setting up your Render Target Texture correctly.

Capture 2D Component

Here you can see there are multiple places to control the individual post process settings as well as the overall post process blend weight. Setting this to 0 will not have any post processing applied.

Render Target Texture as UI

Here you can see there are Texture Resolution settings as well as the Texture Compression for the Texture Group you choose.

Hopefully these are the places in which you need to make adjustments, but if you still need help let me know.

Regards,

Thanks, it solved the problem that I had! On my side I have to make sure the capture every frame option otherwise the scenecapture will not capture anything and display a black image instead. Also the framerate is greatly reduced at the same time, which is another major issue

That is happening because you are essentially rendering your scene twice when utilizing the ‘Capture Every Frame’ checkbox. Also the higher the resolution of your Render Target Texture, the greater the performance hit since it needs to render at a higher density.

Glad I could help!

There is another problem Im facing if you could help, on the right is the texture quality I wanted to capture, but a few seconds later the texture captured was blurred like the one on the left. Do you know what is causing the problem?

Sounds like Texture Streaming issue. Check the Textures you are using for this asset and be sure you have Mips enabled. Mip levels will not be generated for non-power of two textures i.e…2048, 1025, 512, 256, 128 etc…

Below is a picture of where to look for viewing and editing your textures to have the correct mip levels. If you need further help take a look at our documentation which goes into greater detail explaining Mips and Texture Compression.

Texture Streaming

Texture Settings

Cheers,

But im using a Render Target,
Texture shown in editor in the world.

Image captured using SceneCapture2D and displayed on the UMG using a RenderTarget

46060-capture4.png

Render Target’s Settings right now.

The weird thing is that sometimes it gets the texture quality I want, sometimes it turns blur, then even more blur then back to normal blur and repeat.

Thanks in advance!

That is because you are have ‘NoMips’ turned on and your ‘Texture Group’ is set to ‘UI.’ If you are attempting to using this as a UI element that is fine, but you don’t usually want to scale a UI element unless you are scaling it by only a little.

Change the settings I have highlighted below to the values recommended.

Increase your resolution to ‘1024x1024.’

Clear the ‘Maximum Texture Size’

Unless you are using the object as a UI element, I would also set your ‘Texture Group’ to ‘Render Target’ and your ‘Mip Gen Settings’ to ‘FromTextureGroup’.

Finally set your compression settings to ‘TC Default.’

Cheers,