Multiple UV sets VS multiple textures.

Hi guys,

So does Unreal consider multiple UV sets that are present in a single texture as a single texture? How are the pros and cons vs having multiple textures without UV sets instead in the same material? Is this better for memory and performance in general or is the same thing under the hood?

As an example: One 2K texture with 2 UV sets in the same material vs having two separate 2K textures with no UV sets in the same material. Of course this multiplied for all maps roughness normal etc…

Also I haven’t tested Normal maps in multiple UV sets before, should i expect any problems here with having Normal maps arranged like that in Unreal? or should it work right as expected like the other maps?

Last question is unrelated, but I wanted to ask, does anyone know how many Draw calls Paragon characters have per character? Notably how many separate materials do they have on average?


Well, UV sets and textures are slightly different things, so

I think you will need to rephrase this question.
Broadly, UVs are just coordinates of a mesh vertex in texture space. They are stored with mesh. They are completely independent from textures.

Adding additional UV sets for mesh has comparable effect on performance as adding more vertices to it.

Referring back to the first part of my answer, not sure what do you mean by:

Normal maps will only work on UV0. If you want to have normal maps on other channels, you would need to derive tangent basis for particular UV set. I think there is a material function for that included since 4.11 or so.

Oh wow I really do need to rephrase this question, must’ve written it at 3 am or something, my apologies i got it all mixed up, what you said is entirely correct and i am totally aware of it. I meant to say something else ended up with the mumble above, please ignore it as It’s all good now.

One thing I didn’t know though when you mentioned adding UV sets to a mesh’s UV coordinates has comparable effect of increased vertices? So if there’s a mesh with 40K Triangle count and 2 uv sets assigned to it, does this mean Unreal will be working this as if its 80K?

Thanks for the Normal map heads up.

Nah, not that severe. I guess “slightly more expensive” than 40k would fit.

I see, thanks bro for pitching in.

I’d love to throw in the fact that you can have numerous UV maps belonging to the same mesh overlapping if they all happen to belong to different portions of the mesh together in UV0. You will still be able to use all of them individually if each has a unique material id assigned. I do this a lot with characters. For example, say you have a character with the torso, pants, head and shoes, and I decide to make a different uv layout for each of those parts, I can stuff all of those UV layouts into the UV channel zero. But if I also assign a different material to each of those (prior to importing into UE4 btw) then the engine will only consider the coordinates that correapond only to polygons with the current assigned material.

Hope this helps

Thanks Deathrey and Riley1389 for sharing that helpful info!