Community Tutorial: How to Really Fix Blurry Textures w/ Texture Streaming

Fixing blurry textures when using Streaming Virtual Textures and virtual texture pool size has already been increased.

https://dev.epicgames.com/community/learning/tutorials/kYKz/unreal-engine-how-to-really-fix-blurry-textures-w-texture-streaming

1 Like

Hello @AlienRenders , I couldnt find a ways to directly message you on here, so I hope you can see this reply.
I am currently also having the issue that my RVT Textures are very blurry and my DXT5 is maxed out with only 51MB. Therefore im confident your solution would fix my problem, however I searched for hours in my project settings and im certain i simply do not have the settings you do. I did keyword searches that fit your screenshots too but nothing could be found. Could you help me out fixing the DXT5 Poolsize issue? I also tried changing it in the ini file and weirdly enough my defaultengine.ini does not even have the category other people use to change/increase their poolsizes. Something seems severely broken as my project is missing so many crucial settings.

Would greatly appreciate it if you could help me out here. Im at the end of my wits here.

I didn’t have the section in DefaultEngine.ini until UE 5.4. So it’s not that unusual that the section doesn’t exist. However, in order to change the the DXT5 pool size, you must know what all the formats are. So if you execute the command “r.VT.Residency.Show 1”, what does the box with DXT5 say? Is it just DXT5? Does it have multiple entries? Whatever the case, you can add them to the following line and add this to your DefaultEngine.ini file.

[/Script/Engine.RendererSettings]
+Pools=(Formats=(PF_DXT5,PF_BC5,PF_DXT5),SizeInMegabyte=1024)

Change the formats so that they match exactly what you see in the pool residency graph.

As to why you don’t see these setting in your project settings, I have no idea. I wouldn’t use search. Just use the left sidebar and scroll down to Engine section. Under that, there should be a section for “Virtual Texture Pool”. Click on that and this is where you’ll see the settings.

image

If you’re not using 5.4, it’s quite possible that the settings don’t exist in the project settings. I’ll have to verify this and update the tutorial accordingly.

You can also add this to DefaultEngine.ini to increase the pool size of all the texture types.

[/Script/Engine.RendererSettings]
DefaultSizeInMegabyte=256
bPoolAutoGrowInEditor=False

edit:
This is a good guide as well. More in depth about virtual texture pools.

It explains that the texture pools with more than one format are for landscape that use Base Color, Normal, Roughness, Specular. These are stored in two DXT5 textures. And if you have a visibility mask, I think it’ll also use a BC5 texture.

Hey,

thanks a lot for the reply and explanation. I did actually find the correct .ini file soon after and also discovered the post you linked already before and more.
I did change the DXT5 in the BaseEngine.ini as it is advised but it still didnt help my cause. My DXT5 is still at just 51MB and maxed out all the time and my RVT textures are blurry.

Currently I have DXT1 maxed out and DXT5,DXT5 maxed out.
It seemed like it did fix the issue for a very short time but then the textures went back to be a blurry mess again.
Those are my Formats:

These are my ini settings:

Im convinced as you said that the project settings dont exist pre 5.4 as ive checked thoroughly both in the left tab and by scrolling for hours through all settings.
Im currently using 5.3.2 because RVTs were severely broken/unusbale in 5.4 for me.

Lastly I also added the lines you suggested in the DefaultEngine.ini sadly it did not fix my issue either.
(I also tried fixing the poolsize with r.streaming.poolsize xxxx but it did not help either. Also tried disabling texture streaming all together but that didnt do anything either)

Do you have any idea what could cause the textures to remain blurry?

Yeah, your memory pools are extremely small.
I don’t think the uncommented line will work and the ones that would, you’ve commented them out.

Try this in DefaultEngine.ini

[/Script/Engine.VirtualTexturePoolConfig]
DefaultSizeInMegabyte=128
bPoolAutoGrowInEditor=False
+Pools=(Formats=(PF_DXT5,PF_DXT5),SizeInMegabyte=512)
+Pools=(Formats=(PF_DXT1),SizeInMegabyte=256)

Also make sure you have this setting in the following section:

[/Script/Engine.RendererSettings]
r.TextureStreaming=True
r.Streaming.PoolSize=2000

You can change the memory usage as you see fit in all sections.

You will need to restart the editor after these changes. Post a screenshot again with the pool size graphs.

On a sidenode, there is another issue that can cause blurry landscape, but we should see if we can fix your texture pools first.

1 Like

Thanks man, really appreciate your help here. I will get to this asap.
My UE is going haywire at the moment so I have to tend to another issue now at first.
After using my project without making any changes and then reopening it shortly after to work on it, suddenly its crashing non stop on startup and I gotta go through support to fix this as noone else seems to have this issue in connection to the error code.
As soon as this is resolved Im gonna get back to this.

Thanks again and enjoy your weekend!

Hey there,

I applied your suggestion and it worked! Thanks a ton! Really appreciate your help.

Regards

1 Like

Glad it worked!

For me the Transient Pools do not update when I move the camera around with r.VT.Residency.Show 1, and return to virtual textures pool , the Transient Pools are null, the same when I removed them, should I be doing something else?

Is “Pool Auto Grow In Editor” turned on? That needs to be on. You need to turn that off after you add the fixed pools. Also make sure the fixed pools are empty.

If they’re still empty, are you sure you’re using streaming virtual textures? Streaming textures needs to be turned on. If you’re not using streaming textures, none of this applies to you.

I have the same problem as @AdiTinkerbell.

I’m on UE 5.4.4 now and have turned texture streaming on, deleted the pools but none is created when moving the camera. I also do not see the DXT5 graph, only the DXT1 and BC5 ones.

If I move arround and suddenly the editor hangs for a couple of seconds as if the pools are not working or something. Do you have any idea whats wrong here?

Virtual textures and texture streaming are two different things. My guide is when you have both turned on. Did you turn on virtual textures? Also, you must use actual Virtual Textures (ie. if you’re still using regular textures, you can do some texture streaming, but it’s not quite the same thing and handled differently). You can convert your textures by right clicking on them and converting them. Also make sure you’ve built them.

1 Like

Thanks for the explanation, I will check if my level uses any assets with virtual textures and if not then in will convert them.