Hi! Last time I was wondering how modern RTS games like Age of Empires 4 deal with texture optimization. I'm familiar with approach from 0AD that is amazing but in some aspects is outdated (like separate heads or atlas texture for all buildings per faction).
Things that boggles my mind:
1. Player Color
Every objects needs a distinguish between factions so in 0AD there was mask nested in Diffuse texture Alpha channel. Black parts were multiplied color layer. But alpha channel is costly as separate three channel texture so I would not use Alpha channel and include Player Color in other texture.
Cossacks 3 has probably separate mesh added for buidlings but for units it has texture mask.
2. Object Color (for details variation like hair or ethnicity)
Actually I would away from another channel or texture only for this. I noticed that people are including texture variation in one atlas.
I noticed that there is small amount of transparency in units or buildings in AoE4, so I guess it's design choice to avoid overdraw. But some units like trebuchet have got netting/sling with visible holes. Or thatching in AoE3.
And because there's no free channel in Albedo or Masks (Metallic, Roughness, Player Color), it could be nested in Normal Map last channel like this approach (look for comments section https://80.lv/articles/material-design-tricks-in-ue4/ ).
Is this valid and better than Alpha channel in Albedo texture?
4. Units/buildings variety/trimsheets
Units in AoE4 can be upgraded so I guess that four skins are included in one texture? There's also separate texture for common props, I guess? Also, weapons, shield, helmets etc. could be also modular, for all units in game? (it would save texture space).
To sum up I would do this approach:
- Albedo (with baked AO)
- Normal Map with R and G two channels (one channel - B - for Transparency)
- Masks (Metallic, Roughness and Player Color)
Is it good in terms of best optimization or maybe it's not worth of work because there are easier and better approaches? What do you think about it?