In my mind, the temperature layer would be a more “coarse” layer of noise, i.e with bigger “scale” so the “patches” of noise would be larger (it changes far less quickly than height does).
I would also add a “wetness” layer, depending on how detailed I wanted the map to be. Wet mountains become snowy, dry mountains become giant crags.
I would do this biome mapping first.
I’d break it down into cycles:
- terrain height map - creates the “mesh” of the terrain.
- mountain heightmap - a large, coarse perlin map.
- terrain tile paint - paints the terrain tiles the color of the biome.
- biome assets paint - adds on all the relevant trees, debris etc.
First, I would create the temperature + wetness maps, with a coarse/large scale.
Then, I would create the perlin noise height maps (both mountain and terrain).
Then, I would create the actual terrain mesh based on the terrain map + temp/wet maps; I would scale the corresponding terrain world height (from the height map) based on the temperature (terrainHeight = heightmap*Temperature);
then I would superimpose the mountain map onto the terrain height map (i.e unscaled, place mountains here and there on top of the terrain). Principle of superposition, etc etc (terrainHeight = terrainHeight + mountainMap)
Then I would handle biome painting based on the wetness:
High temp + wetness → medium height fluctuation (tropical forest).
High temp + low wetness → very low height fluctuation (desert/savanna).
Low temp + Low wetness → very low height fluctuation (glacier/antarctic).
low temp + high wetness → medium height flux (tundra/highlands).
and add the appropriate assets.
This would all be done with some linear function i.e , terrainColor = terrainHeight * wetness…
That’s my initial take. Interesting project.