top of page

Grassy

This project included research on ways to generate grass and the pros and cons. 

I worked on generating the grass blades, shaping them, randomising, and distributing them over the mesh. The properties were tightly dependent on each other, so it took some time to fine-tune them.

At the same time, I was making the shader for the blades. The goal was to make a not-too-complex URP shader with lighting and shadow casting. Sadly, the proper lighting was not possible due to the blades being one-sided and not producing opposite normals for backside lights. But shadowcasting and gradient compensated for it. I made the grass blades randomised with adjustment settings, different colour settings and other customisations to achieve the desired look for any case. 

 

Lastly, the wind and interaction system. I implemented a couple of different wind systems to test out how the grass would behave. On top of everything, I had to make the whole system customizable because it relies on an input mesh and certain things must be adjusted by hand and don’t scale well with different vertex inputs and distributions. I relied on a lot of resources on the topics. There were a lot of different techniques and ways of doing it, so I had to pick up what I needed for my specific case. 

Appearance settings to shape and colour the grass

LOD system 

Wind and displacement

Lights, shadows, transparency 

Untitled_Artwork-7 2.png
Untitled_Artwork-7 2.png
Untitled_Artwork-7 2.png
Untitled_Artwork-7 2.png
Untitled_Artwork-7 2.png
Untitled_Artwork-7 2.png
Project info

Engine: Unity

  • GitHub
Image Sequence_004_0000_edited.jpg
Untitled_Artwork-4 2.png

Challenges

Distributing grass blades over a mesh without it being fully dependent on the vertices amount on the mesh. Fixing the glitched random position on the triangle introduced. My solution of generating random points on a triangle changed the whole compute shader structure and changed other parts of the functionality significantly. It introduced very specific bugs, but I solved them by adapting the system with the new limitations.

 

Wind and interaction also needed to be fine-tuned and took some experimentation to achieve the desired look. The biggest challenge was to make the grass stylized but still behave and look realistically enough, for example not looking like seaweed. Additionally, I added some colour variance settings to change the different lengths of grass tint colour. 

Challenges
Untitled_Artwork-4.png
bottom of page