In this Blender tutorial I will show you how I made an environment using the geometry nodes in Blender
The keys I am using are in the bottom-right corner of the viewport
I will start by deleting the default cube and adding a plane
I scale the plane up and in edit mode, I subdivide the plane
I use proportional editing to give the plane some interest
In object mode, I shade the ground smooth
I will be using the add mesh: extra objects add-on to generate some rocks
After I add a couple rocks, I will scale them down a bit and place them in their own collection
I will also use a plane to quickly make a clump of grass
I will also use the sapling tree generator add-on to add a simple tree
I apply the scale to everything
I move the 3d cursor to the bottom-center of each object using SHIFT + Right-Click
and then set the origin to the 3D cursor
I now add some very simple materials to the assets
I split the viewport and open the shader editor
I select the ground and add a dark brown color
I add a Voronoi texture node and a color ramp
I change the color ramp’s color stops to a dark brown color and a light brown color
I change the scale on the Voronoi texture
I select a rock and give it a mid-gray tone for the base color –
selecting the others rocks and assigning the same material
I add a green base color material to the grass
I also add a brown base color material to the tree
Now it is time to scatter these assets
I change the shader editor to the geometry node editor
I make sure I have nothing selected and add a new geometry node group
I add a point distribute node which will allow me to place points on the surface of the input geometry object
Notice that the ground object disappears
I can add a join geometry node to the node group in order to see both the point (which will be the assets)
and the ground plane
This is done by connecting the group input (my ground) to the join geometry node –
you can think of this as something similar to a mix node for shaders
I need to instance the assets which can be done by adding a point instance node after the point distribute node
Now, if I select a rock as my object, I can see that rock distributed across the ground plane
I can change the density of the rocks on the point distribute node
If I want to change the scale of the points,
I can add a point scale node inbetween the point distribute and point instance nodes
The attribute input type uses the values to move each point by a different amount –
I can access the different values in the factor field
The float input type uses a single value to translate every single point –
if I change the factor, I can scale the rocks at the same time
The vector input type is similar to the float
in that I can scale the rocks along each axis but I can also make changes along each individual axis
I don’t want to only change the scale so I will delete this node and add the attribute randomize node in its place
This node allows me to attribute random values within a given range to the points
The float type is a single value
The integer type is a 32-bit integer – meaning it can only be between zero and one
The vector type is an array of three values – this is the type I will be using
The Boolean type is a true or false value
The replace/create operation replaces or creates the value and data type of an attribute
The add operation adds random values to the existing attribute values
The subtract operation subtracts random values to the existing attribute values
The multiply operation multiplies random values with the existing attribute values
There is a menu for the attributes but it is not complete since this is a work-in-progress
For now, I will type in “scale” for the attribute and I now notice that the rocks are randomly scaled
I can now add a minimum and maximum scale for this attribute
The seed option changes the randomness that Blender uses
If I also want to randomize the rotation, I can simply duplicate the attribute randomize node
and change the attribute to rotation
I can then make changes to the minimum and maximum rotation
If I want to use all of the rocks I made, I can change the option from object to collection on the point instance node
It is important to uncheck “whole collection” or you will see some weird scattering
I duplicate the point and attribute nodes and connect them to the input and join geometry node
I change the point instance to object and use the grass as my object
I then make any changes to the nodes as needed
I duplicate the point and attribute nodes one more time
I connect them to the input and join geometry node
I change object to the tree
I then make any changes to the nodes as needed
If you have a request for a tutorial, a question, or a comment feel free to leave a comment below the video
If you are interested in learning more, don't forget to like, subscribe, and turn on the notification bell
Thanks for watching Have a good day