Run-time Dynamic Texture Atlas Materials (Matlas)

For the past week, I’ve been working on Skeletal Mesh Merge [SUB]Ref[/SUB]](Working with Modular Characters | Unreal Engine Documentation). To reduce draw calls further, the use of Texture Atlases is recommended. To meet my design goals and approach to entity construction / customization, I’m researching into the possibility of *Run-time Dynamic Texture Atlas Materials *for use with Skeletal Mesh Merging and Static Merge Actors.

My first challenge is figuring out how Create a Array of TextureParameters for use inside a Material. The TextureParameters will be assignable at run-time. The second challenge will be to align The Array of TextureParams in a Grid within the material.

I’m also considering using a material merge similar to the Merge Actor for Static Meshes. The feature has the ability to merge materials. The process is time consuming, however, I would rather have the option to create/save in real-time then no option.

Pursuing this will require the creation of a plugin to to convert skeletal meshes to static meshes, then merge the meshes and create combined texture atlas from their respective textures, then apply the texture to the skeletal meshes. The disadvantage is that the material merge can only be performed on a single LOD.

I’m open to ideas on this lets discuss.

Have you seen the docs on imposters and the plugin from Ryan Bucks?

It may give you a good starting point on a lot of this, though I barely just got into it my self.
The imposter is essentially a texture atlas. So to speak. Anyway I think it’s worth a look to see if that’s close to what you are trying to do.

For the array portions, I would suggest using maps rather then arrays. Just to keep the index and the texture together. Since BP doesnt really allow most of the array functions we are accustomed to in code, like multidimensional arrays and such, you are generally better off not fiddling too much with the order of things and using maps when you really need to.
Or using C++ instead.

Anyways hope that helps.

Hi [USER=“3140864”]MostHost LA[/USER] Is this Documentation on Imposters you are referring too.

And I butchered his lastname…

Thanks Again. Looks complicated. Ill see if I can wrap my head around it. Found a post stating issues with octahedral-imposters plugin.

[USER=“3140864”]MostHost LA[/USER]

I’m crawling into a Rabbit Hole on this one. Over Thinking. Seeking simpler implementations that may suit my goals. Ill add them here:

  1. https://docs.unrealengine.com/en-US/…res/index.html
  2. Blueprints and Render Targets | Unreal Engine Documentation

How about making an atlas and having different textures that can be baked onto parts of the atlas at runtime. Will require a lot of initial work, but should be highly performant.