Blurry textures through scene capture component when level starts

I’m using a scene capture component to project a camera view onto a render target, but seeing what appear to be LOD issues or possibly texture streaming issues when the level first starts up.

The object containing the scene capture component is in a different part of the level from where the player starts, and the materials displayed through it appear blurred until I manually fly the editor camera over to the area of the level where the scene capture component actor lives. After that, they appear correctly. Is this likely to be a texture streaming issue or an LOD issue?

What’s the right way to ensure that texture streaming or LOD’s are correct when viewing a distant part of a level through a render target?

Thanks!

Update: turning off texture streaming in the project settings appears to have alleviated this. Is this an ideal solution in this case?

1 Like

Did you by chance ever find a proper solution to this? Seeing the same thing in 5.0.3.

If later in the level those assets are viewed by the main camera, forcing the textures to be streamed in, the sceneCaptureComponent looks great. Until then, the sceneCaptureComponent only shows very, very low res MIPs.

Set bForceMipStreaming to true. The ‘issue’ is caused by texture streaming, you can turn it off via ~ command (r.TextureStreaming 0) to see how it changes

If anyone is still struggling with this issue, For me increasing the resolution in the texture created by the scene render component fixed the issue. It seemed to default to 256 in my case.

I’ve got a better solution for this - basically you need to let the texture streaming system know about the world position of your capture component so that it will stream in content close to that location as well as player cameras.

The API you want is IStreamingManager::AddViewInformation, something like this:

IStreamingManager::Get().AddViewInformation(ViewOrigin,
	                                            ScreenWidth,
	                                            ScreenWidth / FMath::Tan(FMath::DegreesToRadians(FOV * 0.5f)));

I’ve written a blog post with some more detail here: Fixing blurry textures in UE capture components · SteveStreeting.com