A few questions regarding Runtime Virtual Textures

I’m exploring different optimization techniques for my mobile game and at the moment and decided to try out RVTs. Thus, I have a few questions regarding them to be sure if this feature is worth using for my project or not. For the context, I’m using RVT for the landscape shader.

As far as I understand, RVT is converting all logic from the shader and renders it into a texture when I build the project. And in packaged game, instead of rendering the shader (without RVT) each frame, it just loads data from RVT once the level is loaded. In simple terms (I understand that there’s much more, like mipmaps, texture streaming and so on).

  1. So, my first question is about shader complexity. I noticed that after I added RVT functionality to my shader It became even worse (it became red in shader complexity view mode but was green without RVT). Does it really means that it will harm performance in a packaged game or it’s just how editor shows the amount of shader instructions?

  2. RVT compression. It compresses it as hell and the surface looks as a 8-bit gif image (even with YCoCg):


    But I managed to achieve acceptable result without compression but with reduced RVR settings:

    And when I check disc size (while hovering on this RVT in asset browser) it shows that its size is 16,384 (KB, MB, what’s the metric?). Does it mean that everything is OK and I can proceed without compression or I have to look somewhere else to see the real impact on performance?
    image

  3. And the last question is about defying landscape shader restrictions for mobile. There are some restrictions regarding amount of texture samplers and layers for mobile devices. I personally never faced any problems even when I was using up to 10 LS layers, but I tested just on a couple iPhones, so, I’m not sure whether It will work OK on other devices. Anyway, my current LS shader has only 4 layers and 2 texture samplers.
    So, the question is. With RVTs, does it mean that I can craft a heavy LS shader with more layers\textures (like if I was targeting desktop platform), and with RVT it will be cheap and work flawlessly on a mobile device?

I will be grateful for any answers and comments.

Did you ever get any answers on this? I’m having similar questions exploring the use of RVT for my landscape for Mobile VR

Hi, unfortunately no. Frankly speaking I dropped the idea of using RVT in my project.