Question regarding texture loading efficiency

Is it more efficient for the BGE to load in multiple smaller(ie. 4 X 1024sheets) textures or a singlular larger(ie. 1 X 2048sheet)? Or is there any difference at all?

This second post is a liittle bit of clarification as I wanted to get the basis of the question posted. Scenario: Blender allows you to arrange your UV unwraps and assign multiple materials in such a way that a mesh(character for example) can be broken up into various sections. Meaning the torso could be on one diffuse image and the head on it’s own seperate diffuse image and so on and so forth. On the other hand one could just create one image containing both. Now this is where my question comes in: is it more efficient for the BGE to load in those two images which would be smaller or the one image which would be larger or is quantity irrelevant as long as the file size remains similar?

The file size only matters on the time to load the data from the file. But a smaller file size might be bought in by additional costs at processing time (decompression processing). As said this only matters on reading the file.

I’m pretty sure the important factor to run the BGE is the size of the texture. I do not know the internal format, but I guess as larger the dimensions as more memory is needed ;).
If you use multiple smaller texture or one texture depends on

  • your design (e.g. cloth in one texture, skin in another),
  • your needs (e.g. exchangeable hair textures),
  • the maximum dimensions supported.

In general it is recommended to use:

  • sizes with the power of 2 (better 8)
  • square sizes

By knowing this the more efficient method is the one with the less unused texture space.
Please keep in mind different GPU’s support different max. texture sizes. So it is possible a large texture might not be loaded at all.

Smaller textures can easier be unloaded if the GPU memory gets filled but need additional processing.

Tricks:
The details of a texture should be the maximum detail visible in the game.
e.g. it makes no sense to model or draw

  • foot nails if the are never visible (because of boots).
  • little chain segments of jewelry if there is no close up to see this details.

Conclusion:
use the method that fits into your game structure the best.

I’ve been throwing myself at that same wall of questions. :slight_smile:
1 Big Texture or Several small textures?
And not completely convinced of the exact specifics of the BGE.

Decompression processing,… use of DDS? :wink:

That is very interesting and especially handy when having large scenes with many (smaller) unique objects, using LOD variations.

What should be considered, is the re-use of textures. It is a in certain circumstances that this doesn’t help (unique unwrapped models),
but especially when using tile-able textures, you might be able to set things up to be able to re-use these textures.

But it also depends on the model use,… do models share textures, mesh parts and hen / how often will they unload or be altered?
As you can read in the in this post given link, I considered and discussed some of this with some blenderheads over at gameblender, this thread might also put some things into perspective for you, or at least gives an alternative point of view on some things which might interest you?
1 Big Texture or Several small textures?

Though not completely conclusive. Thank you both for your insight.

Yep, is still a search in progress :slight_smile:

Also something to consider: emtpy space on images.
With smaller images, you have more boundary pixels. And so less space to actually put to good use, larger images have the benefit of combining more uv islands then small images of the same combined size.

Exactly!
Better use a 1024 res for 3 props than using 3 512 images for each!