In this section, you will see how we can create realistic grass in place of the actual grass planes. In order to create our realistic grass, we are going to use a hair particle system.
Generating the grass with particles
A particle system will be used here in order to generate the grass strand without modeling and placing them by hand:
We will first select the cliff and isolate it (/ Numpad). Then, we can go into the Particle tab of the Properties editor and add a new particle system. This will add a new modifier in the stack, but we can only control it here.
We will now have to change the type from Emitter to Hair. We can activate the Advance tab.
In the Emission subpanel, we can change the Number value to 10000, which corresponds to the number of grass strands that we will have. We will also emit the particle from the faces in a Random manner. We can also change the Hair Length to 0.26.
In the Physics subpanel, we can change the Brownian value to 0.120 in order to add more randomness to the grass.
In the Children subpanel, we can set the amount of strands we want to spawn around the main guides. In our case, we will activate the Simple mode and set 10 children for the preview (in the viewport) and 100 for the render. In the effect section, we can change the Clump value to -0.831 so that the children start near the base of the guide strand and are sprayed out near the tip. We can also change the Shape value to -0.124 to shrink the children in the middle a little. We will also change the Endpoint value to 0.018 to add more randomness.
We will now paint a vertex group with the Weight paint tool in order to choose where we want grass on the cliff. For instance, we don't want strands under the house. To do this, we will switch from Object mode to Weight Paint mode while the cliff is selected. As you can see, you have brushes as in the Sculpt mode. We can use the Add brush to add weight and the Subtract brush to remove weight. Red means that it will be full of grass, Blue means you won't have grass. Now, we can choose the vertex group that we have painted in the Density field of the Vertex Groups subpanel in the Particle System settings.
Now we can add a new particle system in order to add long grass. To do this, we will add a new slot in the particle settings. We will also copy the settings from the previous particle system but unlink them (the button with the number on the right-hand side of the name). We can lower the number of particles to 1000 and change the Hair Length to 1.120. The number of children will be 5 in the Simple mode.
The settings of the grass
Creating the grass shader
Now the last thing that we will create is the grass material:
The first thing we will need to do is change the Cycles Hair Settings in the Particle Systems tab. We will change Root of the strand to 0.20 and set Tip to 0.0.
We can now add a new material slot for the cliff and rename it as Grass. In the particle settings, we will change the material to Grass under the Render subpanel.
We will now select the grass shader and open the Node editor. The first node that we will add is the Hair BSDF shader (press Shift + A and select Shader | Hair BSDF) and change it from Reflection to Transmission. We will mix it using Mix Shader with a Glossy BSDF shader. We will change Glossy Roughness to 0.352 so that the glossiness is more diffuse.
Next, we will have to plug a Fresnel node to the Fac input of Mix Shader.
For the color of Hair BSDF, we will add a Color Ramp node (press Shift + A and select Converter | Color Ramp). For its Fac input, we will add a Hair Info node (press Shift + A and select Input | Hair Info) and choose the Intercept output. This will enable us to set the different colors along the strand. We will do a gradient that starts from a brownish color (to the left) to a desaturated green (to the right). Usually, the tip of the grass strand is white, so we will add a small amount of white on the far right of the color ramp.
The grass shader (to the right) and the result (to the left)
We will also mix the result of our Mix shader with a Translucent BSDF shader (press Shift + A and select Shader Translucent). Indeed, the grass is very translucent. We will change its color to a desaturated yellow and change the Fac value of the shader to 0.3. We can finally plug our latest Mix shader to the surface input of the Material output node.