Download

Updating a Material Instance Runtime Virtual Textures in Begin Play

Hello, I’m currently hitting some issues with runtime virtual textures and hoping somebody might have some suggestions on things to try

We’re hitting issues when duplicating maps for prototyping due to the height and material RVTs being shared. In an attempt to make duplicating maps easier, i wrote a level blueprint which in BeginPlay creates a dynamic material instance from the one in the copied map for each static mesh actor. I copy all material instance parameters to the newly created instance, replace the RVT height/mat references with the new unique versions for this copy, and then update the static mesh actor material to use the dynamic one.

However, we’re noticing that it doesn’t seem to be applying or updating appropriately (eg- not blending). As a test, we modified the base color on the new material instance and that did apply. So it seems something is missing from what I’m doing to make the RVT update.

When I unpossess and dig into the dynamic material instance, I can see the correct RVT files are set on it.

Is what I’m attempting to do possible? We’re trying to avoid creating new instances for each duplicate map during this prototype phase, and was hoping an approach like this to dynamically set the RVT files in BeginPlay would work. I tried calling Invalidate on the RuntimeVirtualTexture component of the Runtime Virtual Texture Volume, but that didn’t seem to work.

Any suggestions would be very appreciated. Thanks!