I have started planning a texture layout for a building, and I am aiming to keep texture lookups (and thus draw calls) as low as I can, with horizontally tiling textures.
For my needs right now, I have 2 1024*1024 textures, one with a tiling wall section and one with a bunch of different paneling & trim pieces (think sci fi). I was thinking about combining these 2 maps into 1 1024*2048 map since everything tiles horizontally (and doesn't need to tile vertically).
Now I have been told that square textures are preferred and non square textures even though they are power of 2 present some slowdown or inefficiency when being loaded in and out of memory.
I pondered making a 2048*2048 where I could get more variation, but it seems like a such a waste when all I really need is 1024 wide.
I know this is engine dependant, but should I really worry about this? And any info on how people approach this themselves would be appreciated.
Replies
On a side note though, draw calls isn't the only thing to consider for this. Depending on the situation, sometimes merging things too much can make streaming more difficult.
For instance you have 2 objects that you put on the same texture maps, when you could have put them on two smaller ones, if at one point in your game you're close to one object but the other object isn't present or is very far away, the engine is gonna have to load the whole map anyways, instead of just a full res smaller map and a very small streamed map of the distant object if you had split them (so less texture memory).
The issue doesn't always seem worth considering, but at a larger scale it can have some effect on the streaming performances of a whole level, obviously not the case in your situation, but thought it'd be nice to mention it anyways.
And your sidenote is definitely something to keep in mind, I figure when packing things on a sheet to keep logical stuff together. In my case the building tiling textures would have another sheet with related props, HVAC units, bulkheads, doors, windows etc...