A new livestream about VFX Grass in VFX Graph was just released by Unity. The goal of this series is to attempt to create something more than once under varying time constraints (10 minutes, 1 hour, and 1 day). This episode demonstrates how to use VFX Graph to create grass using particles. If you’re interested in VFX Graph or just want to look at dynamic grass waving in the wind, don’t hesitate to take a look.
Yes, for this exercise I’ve been using terrain as mesh. But you can also sample the Unity Terrain system, like in this Topic.
Now, as stated in the stream, I’m more familiar with regular mesh workflow in Unity, and for the time constraints (10 min/1 hour/1day) , this solution is what I thought would be the best.
Regarding scalability, I do think that this approach could scale on a large scene. But achieving a grass system for large terrain isn’t a 1-day task .
Some further optimization could be needed, like:
Use textures to be less dependent on geometry to get high-density coverage.
Create more optimized meshes and improve the LOD system.
Create a better spawning location system to avoid rejection sampling.
Create a simplified shader for far-away grass.
Recycle/Wrap the VFX grass instances that are not in the camera frustum.
Impostor
etc…
Those are some ideas that could help achieve better scalability for larger scenes. Now, eventually, you always have to keep your project needs and constraints (time constraints, hardware constraints, art style constraints, gameplay constraints, etc.) in mind. Based on your platform and project constraints, other solutions like using DOT and ECS might be better suited.
This is why making small prototypes (10 minutes, 1 hour, 1day ..) is so important. This allows you to quickly iterate and test your solution against your project’s constraints. In the end, there are rarely any silver bullets, and you need to figure out a solution adapted to your project.
Really interesting breakdown, thanks for sharing the thought process behind the prototype. I like the point about using small time-boxed experiments (10 minutes / 1 hour / 1 day) to quickly test ideas before committing to a full system.
The optimization ideas you listed also make a lot of sense—especially using textures for density and simplifying shaders for distant grass. I’ve seen similar approaches where impostors or GPU instancing help a lot when scenes start scaling up.
It’s also a good reminder that there’s rarely a single “best” solution in Unity; the right approach always depends on the platform, art style, and performance constraints of the project. Prototyping early definitely helps reveal those limits. Thanks again for the insights!
First of all thanks for such videos.
But my 2 cents…
There are hundreds of videos on youtube “how to make basic grass”.
But the problem is content creators dont want to make “advanced” stuff cuz less people watch it (low revenue so they dont bother)
So in the end such questions like:
never answered.
So i dont see how 101st video on this topic “basic stuff” is useful.
Dont get me wrong, i love that you even do such stuff but i want to see not only “basic” stuff from unity but make “advanced” stuff as well.
Morning, and thank you kindly for your feedback. I share your assessment regarding the lack of advanced topics. And I also think that you’re right: the audience for advanced topics is smaller.
Now, I also think that other elements come into play:
Time constraint: Advanced topics often required way more time to be created. This is especially true if you want those subjects to be made more accessible.
Advanced topics frequently require solutions that need to be tailor-made to a project and its constraints. This can make a topic even more niche.
*Finally, and I guess it would be more on my personal preference, but I do think that in the end, advanced topics are easier to explain and to learn from other mediums: books, long-form articles, blogs, etc.
Now, again, I agree with your assessment and will forward your feedback to the team responsible for Learning/Webinar. Hope to be able to work on a deep-dive VFX Graph subject soon
Thanks again for voicing your thought and have a great day.
yeah i do not recommend using vfx graph for grass, it cannot do chunking or quadtree hierarchy, and hi z buffer tests. you wont be able to manage buffer data or specifically what operations perform on compute shaders. I also believe there is cpu and gpu interaction every frame with vfx graph, it is not only gpu