Runtime Virtual Texture - changes during runtime

Hello. I am trying to use Runtime Virtual Texture to create “decal like” roads in my game. It works pretty well. The only problem is that once baked, it seems to be imposible to change during runtime. I have dynamic seasons in my game, and I would like to change road texture during winter to a different one. I was thinking about creating two versions of runtime virtual texture. One for winter, and one for summer, but it does not seem to be possible because I can’t bake two different materials onto two separate Runtime Virtual Textures.

And by the way - I am using standard landscape material. I am using RVT only for roads. I put road’s alpha channel into RVT output as specular, and then blend it with my normal material. It works well, but like I said - i can’t do any changes to my roads during runtime. Is there any solution to this problem?

not is possible move some objects yet, but is possible blend RVT with normal shader with blend material node, if you blend only your function of increase snow with RVT maybe your performance will keep on green, i tried normal shader and RVT and was a pain, but if you use only the function of snow will be more cheap

Yes, that’s what I did. It seems to work pretty well. Thanks!

you can do 2 runtime virtual textures i think.

to try it
For now, due to a bug, you will need 2 landscape materials. Each with its own RTV selected in the node.

Then you need 2 rtv captures, each using their own rtv.

The landscape takes multiple ones already, so that should be fine. Just select both.

Then in the level BP you can try to hot swap the materials.

Since I recently tested it. I can tell you that enabling the button for the dynamic material on the landscape effectively breaks RTV painting.
So you actually need to hot swap the material.

not sure this will do, but in the end each rvt is a gigantic render target…

If you are only doing roads you could theoretically set up a landcape wide render target that renders the road to the maximum avaliable size texture, and use that texture in the material for the landscape.
Maybe something like that would work perfectly with the Virtual Texture option…

Yes, you actually can. You can use Material Parameter Collection to change value, and then use node “Invalidate” of Virtual Texture Component (this is the root component of Virtual Texture volume). “invalidate” forces VT to update in real-time, but for some reason for me it worked only with Material Parameter Collection, but not with normal material parameters.