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…