Best Practice for Texture Maps & Performance

How is the new UE5 Engine reacting to Texture maps regarding performance and optimization?

Example:
Is it better to use one 8k texture map on one single object vs.
8 different smaller texture maps on multiple objects?

Thanks for any info and clarification,
appreciate it!
cheers

As far as I know “draw calls” are the deciding factor. The engine normally loads a texture and paints it everywhere where it is needed in one draw call. So having one larger texture is a benefit.

It might be a disadvantage when you combine textures which have nothing to do with each other, for example combining a character texture with a texture of a house because you are wasting GPU memory when not both objects are in the same scene. This is always the case when you only use a part of the texture.

Furthermore use material instances as often as possible instead of materials because they are also more performant.

So short answer. It depends :wink:

1 Like

Yeah, I was thinking the same way. Using one large texture vs. multiple smaller ones.
I question then the use of UDIM’s.
Also considering, that having multiple texture maps, I have to create multiple Material Instances.

Hmm… also questioning, if one large texture map has a much bigger performance hit on the Vram vs. loading multiple smaller ones.

I couldn’t find any documentation on this topic, what’s best practice for UE5, and how that deviates from UE4. Because UE5 has for sure a totally different code and engine.

If anyone has any thoughts on this… highly appreciated.
thanks a lot, cheers

Textures do not affect draw calls, materials do though. If you can reduce the number of materials or objects by combining some textures together then that can help. However, if things tend to be the case that the other objects that use a material/texture are not actually on-screen together then you’d be wasting memory loading a texture where most of it isn’t being used.
It’s often a matter of balancing memory and draw calls to get the best performance.

Also, UE5 is not totally different code, it certainly reuses a bunch of stuff from before that didn’t need any changes.

2 Likes

So if you use lets say 1 material for majority of an enviroment, and the texture is an array texture comprising of smaller textures, would that be a problem?

Also if you call mipmapping from the shader using array textures, would that affect performance as array textures in ue5 does not support mipmapping natively.

What do you think?

I would simply try it out if you have specific performance regards (no offence). There are many tools in ue4/5 to see performance impacts and there is not one answer to your questions, imho.

thank you, makes sense. love it.