Unlike traditional methods that rely on massive Transform Buffers or GameObject instances, this approach dynamically generates grass using ComputeShaders. For culling, I use a RenderTexture to store results (since SSBOs aren’t supported in many mobile VertexShaders), ensuring compatibility with most mobile devices.
This architecture significantly improves load times and performance, especially on mid- to low-end phones. Let’s break down the key design concepts step by step.