Grass

  • Unity Engine
  • C#
  • HLSL

This project is the one I'm currently working on during my free time. The goal here is to learn how to create good looking grass in an optimized way.

TheEggGame

To achieve a good looking grass, I founded that a lot of techniques can be used (billboarding, geometry shader, GPU instancing etc ...), but there is actually a lot of downside speaking about performances.

I finally decided to go with GPU Instancing, because this technique offer really good performances and allow me to deep dive into shaders

Using compute buffers, I'm computing the position of each blade mesh pre-runtime, using it into vertex shader, allowing me to displace blade's vertices using TRS matrix from my compute buffer.

GrassBlade

In the future, I want to add more optimizations like frustrum culling, LODs, and a new blade mesh with less vertices!