Virtual textures blured or one color

Hello,
I have a really big scene with a lot of high resolution textures. I’m trying to optimize the scene by converting the textures to Virtual Textures. It worked just fine from the beginning. I had some textures that were not power of 2, so I scaled them, converted to virtual textures and then it all broke. It was over 3700 textures with one dimension at least 1024 pixels.

There are two problems happening. Some virtual textures are blurry and some are just one constant color.

Here is an example:

Texture is blurry:

If I turn virtual texture streaming off it will look normal:

If I turn virtual texture streaming back on the second problem happens. Some textures are one colored right away.

I assume that the streaming pool is full but if I set r.Sreaming.PoolSize to for example 40000 it won’t help. Does anyone know what the problem could be?

1 Like

Im not sure why virtual textures are working this way, but it seems the problem is caused by MipMap streaming, you can try setting MipValueMode to MipLevel and set Const Mip Value to -1 so the sampler won’t stream MipMap, or maybe set the Never stream parameter in the textures itself. I guess it can cause some trouble with the sharpened textures at the distance especially, but it is still better than the blurry ones :slight_smile:

1 Like

I tried it, but it did nothing. I also found out that if I turn on Dither Mip Map Alpha, then it will fix the texture. So I tried to apply that to every texture, but then it was one colored on every texture that had Dither Mip Map Alpha set to True and switching it to False fixed it again, but when I did that to all textures, it was broken again. Some kind of loop… :frowning:

I had this issue and was resolved by reducing tile size for virtual textures back to default 128 (was at 1024).

2 Likes

This was it for me, I put the Tile size in the virtual texture section of project settings lower (I went to 64 to check) and now my textures are not all blurry! Thank you Rhadley!

2 Likes

Try setting r.MipMapLODBias to -20 or lower; it worked for me.