I’m working with detail textures for a material. Virtual textures are used across the project, but their MIPs doesn’t seem to enable when the textures uses high tiling values. This causes a very noisy dithering effect across the whole asset, and becomes especially noticeable when there is motion involved (Either camera movement or asset animation).
Perhaps this is a bug, or something about the project’s settings not being quite right?
Recording 2026-07-28 103928.mp4(18.9 MB)
Steps to Reproduce
My debug graph. It’s important that the tiling value is high, and that the texture is Virtual.
Hey there! I think there’s two things at play, and the second is making the first more apparent. First thing is the min tile size for virtual textures, which is set in your project settings. That’s down at 128 by default. There’s no mip tail below that, so if we had a 512 detail normal map even though the engine might think it wants the 4px mip the VT clamps everything so you’re always sampling at minimum the 128. Since you’re tiling by 60 and you’re unflattening the normal map (I’m assuming that’s what the 1-15 = -14 is doing) I think that’s exacerbating the issue further.
I think it’s okay for something like a tiling detail normal map to be traditionally streamed since the texture itself won’t be all that big in memory. Your other option would be to soften the texture in the mip chain with a different mipgen setting like Blur5, or even customizing the mips themselves to be a little softer. I wouldn’t recommend tuning your VT tile size just to solve this issue, though.
Thoughts?