Let’s say I have 100 separated Static Meshes for a single level, each one with a different material instance with PBR textures from the Substance3D Painter workflow (MetallicRoughnessOcclusion + normal + base color) from a single Master Material (but each texture set is different for each material instance).
Is there any performance hit or issue when using 100 sets of PBR textures (300 texture files in that case) instead of using texture atlases, at least for some static meshes?
I’ve heard that texture atlases are not useful in separated meshes inside Unreal Engine, because a material (whether already used in another static mesh or not) would add another drawcall anyway.
Thanks in advance!
There’s all sorts of considerations to be made
The first one is memory.
Can the system hold all the textures in ram? Probably not, so you’ll get the pool overflow message.
(Reducing the texture size below 1080 would probably help a bit but reduce the quality)
The second one is performance.
If for a still, you can overload as much as your system allows.
If for publishing, the target system and minimum requirements you want to adopt dictate how much you can load up.
Now the fun part.
Will using an atlas instead of a single texture improve things?
Probably not enough. And mostly just on the memory side.
Will using virtual texturing improve things?
Probably a but (provided you can become competent enough on its use, caviat, and gotchas) - still mostly on the memory side.
Will Instancing improve things?
If you were to divide all the models with the same material out, and you have at least 25% of the tris in the scene rendering from this same material, then yes. Instancing just those parts would make a difference.
Whereas, if everything is completely different this won’t change a thing (and possibly make stuff worse).
Depends wholly on your target system.
Thank you so much for your detailed answer. I target mid-range PC so I don’t really know if it’s such a big deal! The FPS I get (even on the Editor) is still pretty good at this point, so I might worry for nothing!
But I think I’ll still try to reduce the number of Static Meshes & use a few less texture.
Anyway, thanks again