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):

Most Liked

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
Please share!! :video_game: What did you use? What would you use going forward?
New
New
New
Help
I am trying to crate a game for the Nintendo switch, I wanted to use Java as I am comfortable with that programming language. Can you use...
New
First poster: bot
Xbox 360 Architecture | A Practical Analysis. An in-depth analysis that explains how this console works internally
New
First poster: bot
The gaming firm is accused of using its market dominance to impose extra charges and drive up prices.
New
Norpoleon
Team JethKo - Knee Deep is a detective adventure with role-playing elements & turn-based combat. What started as a small project tur...
New
RobertRichards
FEI Equestriad World Tour This game is mainly developed to amuse horse racing lovers. What makes this game quite engaging is the realist...
New
Unknown_0O0
Welcome, fellow game enthusiasts! Allow me to introduce Scratchblox, a delightful blend of Old Roblox charm and Scratch creativity. Step ...
New
PragmaticBookshelf
Unlock Rust development with reusable libraries, traits, macros, and generic metaprogramming. Build code without the boilerplate, and lea...
New

Other popular topics Top

PragmaticBookshelf
Write Elixir tests that you can be proud of. Dive into Elixir’s test philosophy and gain mastery over the terminology and concepts that u...
New
DevotionGeo
I know that these benchmarks might not be the exact picture of real-world scenario, but still I expect a Rust web framework performing a ...
New
New
PragmaticBookshelf
Rails 7 completely redefines what it means to produce fantastic user experiences and provides a way to achieve all the benefits of single...
New
PragmaticBookshelf
Author Spotlight: Peter Ullrich @PJUllrich Data is at the core of every business, but it is useless if nobody can access and analyze ...
New
First poster: AstonJ
Jan | Rethink the Computer. Jan turns your computer into an AI machine by running LLMs locally on your computer. It’s a privacy-focus, l...
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
AstonJ
Curious what kind of results others are getting, I think actually prefer the 7B model to the 32B model, not only is it faster but the qua...
New
PragmaticBookshelf
Use advanced functional programming principles, practical Domain-Driven Design techniques, and production-ready Elixir code to build scal...
New
xiji2646-netizen
There’s a GitHub repo at forrestchang/andrej-karpathy-skills that’s sitting at 97.8k stars. It’s a single CLAUDE.md file with four behavi...
New