Hillside, scattering with geonodes

After a long break from Blender, I wanted to try out the new geometry nodes for working with heightmap-based landscapes.

I created the heightmap and datamaps in Gaea. These were used in the shader editor as I’ve done previously. They also control the scattering of trees and grass (along with Blender’s noise texture nodes) from within geometry nodes. All the planes that I used for scattering have only 4 vertices, which is a large departure from the previous particle-based workflow where I would use planes with at least a million vertices.

Clouds were a rush job, and there are clearly artifacts that need ironed out. They are also scattered with geonodes.

Trees from Botaniq, grass from Graswald.

This is a 1 hour test render. Plenty of work left to do, but I think the main purpose of exploring populating a landscape with geonodes was fairly successful.

Latest thumbnail:


What do you think the advantages are of using nodes instead of particle systems?

Hi Mark,

For this project I was simply trying to learn how to produce similar results to what I had done previously with addons using particles (Scatter, Graswald, Botaniq, etc). This type of scattering can be done with particles without addons, but I think it would be a pain. So one advantage of geonodes is simplicity when compared to particles without the help of addons.

In both cases I’ve had to drastically reduce the number of instances displayed in the viewport. Rendering millions of instances is no problem (Cycles) with particles or geonodes. But the performance of the UI goes downhill very quickly if you attempt to display too many in the viewport. This happens in any context, but perhaps it is a little more dangerous in geonodes as it is pretty easy to accidentally request far too many instances than the viewport can handle. Save your file very, very often when playing with any nodes that contribute to density calculations.

Not exercised here, but a major advantage of geonodes when it comes to scattering is the ability to have multiple ‘levels’ of scatter. For instance, I’ve tried to scatter moss on rocks and then scatter those rocks around a scene. With particles that was a PITA. Another example would be trees which use particles for twigs/leaves; if the trees are then instanced with particles, the leaves fall off. Geonodes should handle these cases with ease.

With particles, it is essential that the object you’re scattering on (usually a plane in these types of scenes) is subdivided enough that the displacement isn’t too far removed from the final results of the microdisplacement of the adaptive subdivision on the terrain. Otherwise you’ll end up with floating instances. Similarly, the vertex resolution needs to be fine enough that you can affect the scatter density to your liking.
A main point of this exercise was to see if this could be avoided with geonodes. It can, and I suspect it offers the possibility of higher precision placement if required.

Those thoughts are what comes to mind regarding simple scattering. Geometry nodes offers way more, of course. See @Gemn 's work to see what is possible.

Thanks for that comprehensive reply. Definitely some good info there.

I haven’t tried geometry nodes yet. I suspect the interface/workflow will change a bit since it is new. (I hate having to relearn things.)

3.X with fields is a significant change. When you decide to start exploring, skip 2.9X and head straight into 3.X. My impression is that effort towards geometry nodes from the official developers is winding down, with the expectation that the community developers will continue to add nodes and make improvements. Assuming that is true, I thought now was a reasonable time to start learning it.

1 Like

I featured you on BlenderNation, have a great weekend!

1 Like

Testing out some new clouds made without fluid simulation. Not finished with them, but making progress. I also added more density control to the vegetation scattering nodes, and adjusted the shader on the base terrain.
Fog got out of hand. I had upped the volume Max Bounces in the Light Paths panel after doing some tests in a separate file. But I didn’t account for that by decreasing the fog density as I should have. So this test render was really noisy, and the denoiser chewed up a lot of detail.

I’m not really happy with the way most of the trees I’m using are catching the light. I did some tests to see if geonodes could easily scatter trees created in Grove, and it did, and they looked nice. But the pre-render setup took 45 minutes! Maybe I’ll use them anyway, but that’s an awful long time to wait for the first render sample of each test render…

1 Like