AkilarLiao

AkilarLiao

Building a Cross-Platform GPU Procedural Grass System in Unity URP (Optimized for Mobile)

Hello Devtalk Community,

I’m sharing a GPU-Driven Procedural Grass System for Unity URP, heavily optimized for mobile. Key Features & Challenge: This system handles Procedural Generation and implements precise ViewFrustum, Distance, and FilterMap Culling entirely on the GPU. However, I faced the common mobile hurdle: SSBOs being unstable in the Vertex Shader on low-end hardware. My Solution: To ensure robust cross-platform stability, I bypassed the unstable SSBO path. The Compute Shader now writes instance data (including culling results) to a RenderTexture (UAV), which is then sampled by the final shader. Seeking Expert Opinion: This RenderTexture method guarantees stability, but introduces potential texture cache overhead. Is this the most practical performance/stability trade-off for commercial URP Mobile development today?

I’m keen to hear your critical thoughts. — Full Technical Breakdown (Including implementation details on Culling):

Source Code (GitHub):

First Post!

AkilarLiao

AkilarLiao

Just to close the loop on this thread:

The discussion influenced how the system evolved,
especially regarding cross-platform stability and GPU-only workflows.
I later summarized the technical reasoning and lessons learned in this write-up:

The same approach has since been packaged into a Unity tool for practical use:

Where Next?

Popular Game Dev topics Top

AstonJ
Not sure how much I missed but: Anyone else been watching it?
New
AstonJ
This was on the UK Dragons Den and I thought it was a neat use of existing technology (Playstation 3 camera which you can buy for about £...
New
bot
A new item has been posted: This thread was posted automatically, if you feel it could be in a better category and are at Trust Level ...
New
First poster: bot
PS5 Teardown: An up-close and personal look at the console hardware. Your first look at PS5’s internal components* that will power the n...
New
New
First poster: bot
It’s been confirmed that E3, the biggest video game event in the world, is set to go ahead this year. Instead of its usual Los Angeles l...
New
CommunityNews
Nintendo Is Removing Switch Emulation Videos On Steam Deck. Recently, a video showcasing how well the Steam Deck can emulate the Nintend...
New
First poster: CoddyG
Free and open source 2D and 3D game engine. Godot provides a huge set of common tools, so you can just focus on making your game without...
New
MattSu
Hi, I’m trying to get some up to date spec for the audio capabilities on PS4/PS5 hardware. i.e. number of channels, whether it has dedica...
New
AideedGameZ
I make a cafe relax game that is free and WebGL. The challenge is you need to earn as much as possible so you can pay your bills and rent.
New

Other popular topics Top

AstonJ
I’ve been hearing quite a lot of comments relating to the sound of a keyboard, with one of the most desirable of these called ‘thock’, he...
New
AstonJ
I ended up cancelling my Moonlander order as I think it’s just going to be a bit too bulky for me. I think the Planck and the Preonic (o...
New
AstonJ
Saw this on TikTok of all places! :lol: Anyone heard of them before? Lite:
New
PragmaticBookshelf
Programming Ruby is the most complete book on Ruby, covering both the language itself and the standard library as well as commonly used t...
New
First poster: bot
zig/http.zig at 7cf2cbb33ef34c1d211135f56d30fe23b6cacd42 · ziglang/zig. General-purpose programming language and toolchain for maintaini...
New
PragmaticBookshelf
Develop, deploy, and debug BEAM applications using BEAMOps: a new paradigm that focuses on scalability, fault tolerance, and owning each ...
New
AstonJ
If you’re getting errors like this: psql: error: connection to server on socket “/tmp/.s.PGSQL.5432” failed: No such file or directory ...
New
PragmaticBookshelf
Get the comprehensive, insider information you need for Rails 8 with the new edition of this award-winning classic. Sam Ruby @rubys ...
New
mindriot
Ok, well here are some thoughts and opinions on some of the ergonomic keyboards I have, I guess like mini review of each that I use enoug...
New
NewsBot
A new R blog post/announcement has been posted! Get the full details here: https://blog.r-project.org/2026/01/06/debugging-sensitivity-...
New