In this post, I will share my workflow to create the following render:
I started with a small terrain procedurally generated in World Machine. I used the default nodes, but I tweaked some parameters and changed some curves until I get the desired heightmap.
After a good result, I created a grid in Blender and used that heightmap in the displace modifier. Then I converted to a mesh and made small changes over the surface. It's nice to add a subdivision surface to smooth everything to allow you to read every curve and see if it's smooth and gentle, like in nature.
I duplicated the terrain and positioned along the Y-axis to get more variation and more depth. It's the same mesh, but in another angle.
Lighting! I didn't want to create a super bright environment, with a clear sky and a strong sun, so I tested a lot of HDRI files and I found a nice one at hdrihaven.com. It was a little bright, but I changed the exposure and changed the angle to fit in my camera. Here is how it looks like:
My gray ground deserved a texture, so I searched online and tested some textures, applied some materials, and tweaked colors. This is my base texture:
I started adding details: from large rocks to really small ones, trying to find a good balance. I also added the background forest, it's that plane over there.
Since I added a forest, I thought that should be nice to scatter small details over the surface. For example dry leaves and small twigs that could be carried by the wind. To do that, I duplicated some polygons over the terrain and assigned a different material to it. I got some textures with alpha channel on MegaScans. I tweaked my UV and created the material. Here you can see a preview in Eevee:
Now I rendered the preview image using the same setting for the final image, but a smaller image to render fast. With that preview render, I've found some areas that could have more detail and fixed it.
After I detailed work in Step 7, I rendered the final image with the original size and a decent number of samples.
I imported the in Darktable to do the final adjustments. I could have done it in Blender Compositor, but Darktable is easier to use - actually, I wanted to see how the last version looks like. It's a free and open-source project, check it out!