Virtual Runtime Texture blurry

hlods you can generate any texture.

Yes I am aware of that, but the expectation is you will not. You will use a simplified set of textures and a single material.

If your mips are blurring with RVTs, it could be a residency issue; the engine is topping out on the memory pool it uses to manage all the tiles of the RVT.

check this: Runtime virtual texture sets landscape to lower mip - #71 by Frenetic

otherwise to comment on the above:

  • The RVT will take in channels, labeled BaseColor, Specular, etc, but they are still just channels like in a regular-texture: you can make them mean what you want. If you choose to paint in PBR information then read it out as such. If you choose to paint alphas, or whatever, then fine. I’ve used them extensively and they work well enough.

  • If you seem to be missing something on the far-side, when you read it out (like there is no Roughness), make sure you have the content set properly so the engine can deploy the right texture(s) behind the scenes:

  • Continuous page updates can be costly so if you are not planning on actively updating content in the RVT, disable this for performance reasons.

  • It IS a streaming-kind-of-thing. This is where stuff on lower-end hardware might bite you; FYI.

  • Make sure you have enough allocated to the residency-pools per the above. This will cause slow updates as the engine thrashes for resources.

  • to the post with the video showing the contents of the RVT, it might not always be a 1:1 with BaseColor channels, etc. Depending on what settings you use, Unreal will just-use that as a data-sink. Just in case you see something funky/unexpected. Check ‘Runtime Virtual Texture Material Types’

  • For the person above, the build button, along with specified levels, makes a disk-centric chunk of those MIPs for streaming vs doing runtime-stuffs. You trade disk for runtime-effeciency, but subject to the streaming bottleneck of whatever drive it’s out on. This is where things like SSDs/M2 have a distinct advantage over platter drives. Not saying it cannot work on a platter, but it WILL work much better on the other two… The more levels you build out, the more MIPs you precompute, the more space you take up.

Suggestion: when using it for landscapes, I always found my texel-density was really at the mercy whatever table-size/page-settings I used, which tended to chomp on resources. SO! If you wanted a landscape with fine-grained detail, I found it much more effecient to pack and paint the layer-alphas as BaseColor, Roughness, etc and then on the other side, when you render the content of the RVT, you can control the texture-scaling directly and independently of the data-sink that is the RVT. In other words you can really crank up fine-level detail if you want, and it doesn’t require a huge RVT, which saves resources but also allows much better levels of detail; options, options, options…

unfortunately build button for building disk centric mips… does not build mips for anything other then diffuse color… no normal map… no roughness… it just looks bad as you can see from the screenshot.

Everything is linked up properly… same texture content in every location… base, normal roughness is the settings i use in all places.

I tried setting the pool to 1024 instead of 64… different results… when i get midway distance away the middle tiles get really blurry… u can see it in teh screenshot… a strip of tiles are blurred… when im close they arent blurred and when im far they arent blurred. I think its because its using nanite… Problem doesnt seem to be there when non nanite…

So my question again … can i bake the virtual texture out somehow so i can use it on a nanite mesh? Maybe see if i could plug the streamed height into the tesselation

In either case pool size helped make the rvts look better, but does not help the streaming vt build… those only bake the color, but look shiny and no normal map…