🌿 Grass
Grass is one of those things most games need, but is actually pretty difficult to get right! I’ve covered several styles of grass, and more are coming.
I am still updating my grass renderers! At the moment, none of them can cover Unity terrain, and only billboard grass supports interactive trample effects.
Billboard Mesh Grass
This grass uses flat meshes, called billboards or cross-meshes, with a transparent grass texture. It uses the shader graph to add wind and trample animations. The most difficult aspect of this system is placing grass meshes in a natural way, which I try to solve using a special script.
I recommend this grass if you are building your game for a lightweight platform.
- Features: built in shader graph, wind, interactive-trample effects
- Pros: easy to set up, customizable by changing the grass texture, most performant
- Cons: uses transparency, cannot easily cover a terrain mesh
Blade Grass
Blade grass uses a mesh of grass blades generated over a shape. This style of grass looks and acts the most like real grass, but is the most advanced.
- Features: can generate a grass mesh over any other mesh, wind
- Pros: easy to customize coloring using a code or graph shader, looks good from all angles and distances
- Cons: difficult to customize blade shape, less performant, grass mesh cannot change at runtime
Layer Grass
Layer grass uses a mesh made of several parallel layers and cuts grass shapes out of it with two noise textures. It’s more stylized than the other two grass techniques, but is very easily customized.
- Features: can generate a grass mesh over any other mesh, wind
- Pros: easy to customize by changing textures
- Cons: doesn’t look as good close up, grass mesh cannot change at runtime
Procedural Materials
This implementation uses a procedural material made in the shader graph. It’s very easy to set up, and gives a pretty, stylized look.
- Pros: very customizable, simple, all in one shader graph
- Cons: not actually 3D, doesn’t have wind effects or interaction