How to distinguish materials of landscape (ground versus river, versus mountain)


I want to make my landscape in a way that different altitude ranges correspond to materials…
For example, I want range z = 0 to z = 10 to be grass material, while z = 10 to z = 100 to be mountain material, then z = -20 to z = 0 to be water.

Is this possible?
Currently, the way I see to make this happens is a sort of “paneling” of static meshes… Obviously, I would prefer a more efficient way.


See this answer which gives links to how to achieve it. There are a couple of ways to achieve the desired effect and you can used world height of the pixel or its slope or a combination of both to get the desired blend.