Grass Generator

by Ignacio Matey in Models


I made this procedural GRASS generator in Geometry Nodes. Basically it allows you to:

  • Distribute grass on objects, controlling parameters like density, noise distribution, weight paint...

  • Camera culling

  • Editable materials (already UV unwrapped)

  • Reaction to wind (WITHOUT simulations)

  • Reaction to objects (done with DYNAMIC PAINT)


You can check on this YouTube tutorial how it works:


Now, here are all the steps and properties that you can change.

INSTALLATION:

Just apend in the file that I provide you the NodeTree called: "GRASSgenerator"

ADDING IT TO AN OBJECT:

Create a Geometry Node modifier with "GRASS generator" on it.

Two different source objects

PARAMETERS:



  • Material ground: In case that you want to modify the material of the grass and mantein the material of the ground, you should put in the input the material of the ground, if not the ground material will become the grass material.

  • Weight paint: allows you to create a weight paint of the distribution of the object. Just put there the name of the vertex group (normally is called "Group")

  • L: changes the lenght of the grass.

  • Density: changes the density of the grass.

  • Grass width: changes the width of the grass.

  • Spread cluster: change how much the clusters that form the grass are spreaded (DON'T MAKE IT TO HIGH IF YOU WANT TO ADD WIND!)

    Example of a cluster


  • Radius cluster: change the radiuos of the cluster

  • Density of the cluster: how dense the cluster is

  • Scale noise size/ofset noise: change the respective paramters of the noise texture that changes the size of the grass.

  • Minimum lenght: the minimum length that a culster will have on the grass distribution.

    Scale= 0.3

    Scale =1.5


  • USE CAMERA CULLING: 0 means NO, 1 means YES (CAUTION: for using camera cullling, your source obejct must have some vertex to work on, so if its a plane with just 4 vertex it'll NOT work!)


  • Camera: choose the camera that you want.

  • Lens: lens size of the camera to fit the projection of the distribution.

  • REALIZE INSTANCES: if you DON'T want to add wind or reaction to object effects, keep this parameter as 0 (then the goemetry will not be realized). If want to add one or both of these effectss, then make it 1. This will be MORE intense for the computer.

  • Wind direction/strenght: change this parameters of the wind.

  • Wind scale/speed: change the parameters of the noise texture that contolls the movement of the wind.

  • Smashing object: (YOU NEED TO KNOW A LITTLE BIT ABOUT DYNAMIC PAINT FOR THIS FUNCTION) object that smashes the grass. This funtion uses dynamic paint so, the obejct should be the "Brush" and the ground the "Canvas", in Mesh + Distance option. Then you NEED to place the dynamic paint modifier in top of the Geometry Node modifier.


  • Smash angle: in which direction the grass is smasehd (0º means y- direction)

  • Smashed angle/curvature: amount and noise: change how the grass reacts to the weight of the object.

  • Front proximity: how quickly the grass folds when the object goes thorugh it.

  • Back proximity: how much restoring force is in the grass.


MATERIAL:

The grass is already UV unwrapped so you can always add your own textures


I made a customizable procedural texture. If your grass is NOT realized, then you need to use the material "GRASS shader not realized". If that's not the case, then you need to use "GRASS shader"



  • Individual dry grass: change how many individual grass is dry.

  • Individual top dry: how many leafs have the top dry

  • Individul height dryness: how up/down is this dryness

  • Dryness: controlls the general dryness.


  • Roughness/transmision: changes this parameters in the Principled BSDF

If you want to add your own image texture, press TAB in the shader and go to image texture. Then mix it with the node.

CAUTION:

  • The add-on works for Blender 3.2 +

  • The generator also works for non flat surfaces, but effects like wind and smashing might give some problems, the generator was thought to work on mainly 2 dimensional surfaces)

  • This is the version 1.0 so please let me know about bugs or whatever problem you find. All feedfack is welcome. You can always contact me: [email protected]

FUTURE VERSIONS AND IMPROVEMENTS:

  • Bigger library of grass types and textures

  • More wind effects

  • More collision dynamics







Choose a product version:

  • $5 Personal License

    If you don't want to make money with this product

  • $10 Commercial License

    If you want to make money with this product.

Sales 300+
Customer Ratings 1
Average Rating
Published over 2 years ago
Blender Version 3.5, 3.4, 3.3, 3.2
Render Engine Used Cycles
Misc Data Uvs-Unwrapped, Animated, Textured
License GPL
Have questions before purchasing?

Contact the Creator with your questions right now.

Login to Message