- Home /
GPU Grass on a Mesh
Hi,
I want to make a really advanced Grass shader in ASE or Shader Graph, but I ran into a problem. There some options to make grass, but none of them is suited for me, here is why:
1) Grass on Terrain, it is GPU, but you can swap only Grass shader and can't actually plug something into a new Material. Plus it requires the Terrain.
2) Grass prefabs as GameObjects, it works fine, but it is not performant to have 10k GameObjects of grass in your scene. Even if I enable GPU instantiating in material settings, it's still don't increase an FPS much. I think it's because of GameObjects itself.
3) Similar to the previous one, but using GameObjects with ECS. This should work, but ECS is in a preview state. Also, I need to be able to check for collisions of grass.
4) Grass as GPU Particles, I can easily convert ASE shader to a Particle GPU instantiated one with this article (https://docs.unity3d.com/Manual/PartSysInstancing.html). And it actually suits me very well, except for one issue. I don't know how exactly use particles as Grass. You can't paint with them, you need to spawn them in a script. So it will be tricky to create some kind of paint system for particles, which will paint only positions for particle spawn points.
Personally, I think the last two variants are the best ones. But if there is another way to create this? I just need GPU instantiated grass with custom ASE shader + collision detection if possible.
Your answer
Follow this Question
Related Questions
Disable grass fade 1 Answer
Problem shader graph on terrain detail mesh don't show correctly 0 Answers
Custom colliders on the GPU 0 Answers
Alpha channeled grass 0 Answers