Terrain blending

Does anyone know how environment tiles are done in tiled games like StarCraft or Age of Empires?

The way I’ve more commonly seen this done is to use either a world projected texture or vertex colour to mask which texture is shown. This comes with the limitation that a texture or colour only has 4 channels of data in it, meaning you’re then limited to blending between only 5 different textures. This has the benefit that these tiles can share a material and batch nicely with one another.

But in Age of Empires, the number of different terrain layers that seem to blend together seems much larger than that, from different kinds of dirt and grasses, to ice and snow, to deserts, tundra, beach, etc. (In the terrain editor the list of possible terrain tiles seems to be easily over 100.) You seem to be able to draw them arbitrarily, and have them blend nicely into their surrounding tiles.

The only way I’ve thought of being able to do it is to have each layer be separate, with edges that fade in some way to become fully transparent, so that you’re able to stack different layers on top of one another. But the drawback here is that you’re then using transparency on your environment, along with the accompanying problems of sorting, batching, etc.

Does anyone have any insight into how a game like Age of Empires, or possibly Starcraft/Warcraft does their tiled terrain that seems to be able to blend very many layers together?

(I realise this might technically not be fx, but it’s very much an art+tech problem that involves some shader wrangling.)