Hi,
I’ve once again ran into a scenario which I run into often. I start a project, I drop in quite a few megascans, and at some point, I start running out of GPU memory due to the sheer amount of textures, since megascans are quite texture heavy.
The virtual texturing was designed to address exactly this problem, but there is a big issue: When you don’t decide to use VT at the very start of the project, but already after starting, then you often have tons of assets to convert.
You can not just enable VT on the textures, because texture samplers in materials require different sampler types. If you just enable the VT, and keep the materials with non-VT sampler types, the materials will fail to compile.
To address that, UE5 has Convert to VT tool, however this tool is dangerous:
When you run the tool over your average set of MS textures, it will also touch the assets in the MS plugins directory. Assets, which are referenced not just by the project you are working on, but also any other projects you have that use megascans. If you decide to run this operation, then if those other projects do not use VT, then once you open them, their materials will fail to compile because they reference the assets from the plugin director you’ve changed.
So that’s why I decided to avoid this tool, and simply make a _VT suffixed copy of the MS base material, which has the samplers set to their virtual counterpart types:
I hoped I’d then simply replace the base material reference for all the material instaces with the VT equivalent, and then enable the VT on all the textures using the bulk edit property panel. But this once again failed, since material instances do not support bulk editing:
So here I am, with a question:
Does anyone know any efficient workflow to convert existing project to use VT without breaking the engine stock assets?
The VT converter is out of question, as it behaves dangerously by not being restricted to your project folder. The manual workflow seems to be stuck on the fact material instances can’t be bulk edited. So only option I have left is to manually go through each material instance, and replace the base material with the VT one. That just would not be feasible on a large scale project.
Since Epic advertises VTs a lot, I am sure there must be some more user friendly way to go about this