View on Asset Store (opens in new tab)
Package details
- Latest version
- 1.0.3
- Last updated
- First released
- Unity version
- 2022.3.62 or later
- Package size
- 32.5 MB
- Files
- 108
- Favorites
- 13
- Views in the past week
- 14
Price tracking
- Last checked
- Tracked since
- Lowest recorded
- $69.30 on
Keywords
GPUFloraPainter
GPUFloraPainter is a fully GPU-driven procedural foliage system that eliminates the need for traditional GameObject instancing or terrain rendering.
Affiliate link Β· Purchases support this site
Price history
Last 6 months
USDAsset preview
1 / 1
GPUFloraPainter video 1
About this asset
πΈ GPUFloraPainter β Real-Time GPU Vegetation System
A real-time GPU vegetation system built for Mobile, URP Forward+, and open-world scalability.Paint millions of grass blades on any mesh β no Terrain, no GameObjects, no CPU overhead.
---
β³οΈ What is GPUFloraPainter?
GPUFloraPainter is a fully GPU-driven vegetation system designed for real-time painting and large-scale environments.
Unlike Terrain- or GameObject-based workflows, vegetation is painted directly on any mesh using GPU-accelerated brushes with instant feedback.
All distribution, motion, lighting, wind, and interaction run entirely on the GPU β keeping the CPU stable even on mobile.
On mid-range devices like the Galaxy S10, GPUFloraPainter consistently achieves 57β60 FPS with instant initialization (0β65 ms).
---
π± **Key Features**
π¨ Real-Time GPU Painting
Paint grass and flowers directly on any mesh surface with instant GPU brush feedback.
Supports multi-layer mask editing via TextureArray-based painting β fast, smooth, artist-friendly.
πΎ Procedural Grass Blades (Spline-Based)
Each blade is procedurally generated using randomized spline curves for rich, rice-stalk-like motion with no billboard artifacts.
πΈ Hybrid GrassβFlower Rendering
Lightweight 2D flower billboards attach to grass tips, responding to wind and lighting in sync with the underlying blades.
π§ Fully Procedural Distribution
No pre-stored transforms.
All positions and random attributes are procedurally generated on the GPU, reducing memory usage and enabling massive open-world scenes.
π‘ Advanced Lighting & Color Control
URP-compatible BlinnβPhong lighting with smooth tip-to-base color gradients.
Flowers use a highly optimized shader for visual clarity on mobile.
π¬οΈ Dynamic Wind Simulation
Procedural wind with randomized curves creates natural, organic vegetation motion.
π§ Real-Time Interaction (Optional)
Grass bends dynamically as characters or objects move through it β computed entirely on GPU.
πΏ Multi-Type Flora Rendering
Render up to 20 flora types in one pass.
Optimized for ASTC compression for stable mobile performance.
βοΈ GPU-Optimized Culling
Visibility and distance culling computed entirely on GPU with texture-based filtering.
π§ Distance-Based Optimization
Smart LOD fading ensures stable visuals and performance across large environments.
πͺ¨ Voronoi Cluster Distribution
Generates non-uniform, organic clustering for more realistic natural patterns.
ποΈ Adaptive Surface Height Baking
Height alignment is pre-baked at edit time, allowing perfect ground contact with zero runtime cost.
---
π§© **Why GPUFloraPainter?**
β‘ Fully GPU-Driven Pipeline β Zero transforms, zero CPU bottlenecks.
π± Mobile-First, Desktop-Ready β Sustains 57β60 FPS even on mid-range devices.
π¨ Instant Editing β Real-time painting with GPU-accelerated TextureArray brushes.
π Procedural Scalability β Generate millions of grass blades dynamically.
π§βπ¨ Artist-Friendly Workflow β Intuitive design with production-grade performance.
---
π§ Technical Transparency
(Dynamic Procedural Generation & GPU Workflow)
GPUFloraPainter is powered by a fully GPU-driven procedural generation system.
All vegetation data β positions, randomness, culling, and draw arguments β is created and updated directly on the GPU, without CPU transforms or per-frame overhead.
For developers interested in the underlying concepts behind dynamic random generation, GPU-driven buffers, and Indirect Draw workflows, we provide a public reference project:
[π https://github.com/AkilarLiao/UnityURP-Procedural-DrawMeshInstancedIndirect]
(This project is a minimal technical example β not the production plugin.
The full system includes extended tools, editors, optimizations, and mobile-focused features.)
---
β¨ GPUFloraPainter bridges the gap between artistic control and technical performance β delivering desktop-quality vegetation at mobile speed.
From the publisher's Asset Store listing.
Technical details
β‘ Technical Overview
πΉ GPU Procedural Transform & Spline Generation
All blade transforms and spline curves are generated procedurally in ComputeShader, guided by the editable FilterMap for paintable regions.
πΉ Single Dispatch Architecture
Only one ComputeShader dispatch and two DrawMeshInstancedIndirect calls render the entire scene β minimizing CPUβGPU sync.
πΉ ComputeShader-Based Culling
Frustum, distance, and mask-based culling all occur on the GPU, ensuring real-time responsiveness and scalability.
πΉ RenderTexture-Based Output
Culling results are stored in RenderTextures, not SSBOs β ensuring full compatibility with mobile GPUs.
πΉ Billboard Attachment System
Flower sprites align dynamically with grass tips and inherit wind motion, maintaining perfect animation consistency.
πΉ ComputeShader Brush Editing
Full GPU read/write to RenderTextures and TextureArrays enables multi-layer vegetation control without costly blit operations.
πΉ Flora Type Management
Supports up to 20 configurable flora types, with optimized ASTC compression for mobile efficiency.
πΉ Shadow Rendering
Screen-space flora shadows implemented as URP RenderFeature impostors, using FilterMap-driven projection with noise filtering for smooth edges.
πΉ Randomized Wind Generation
Procedural Wind Noise Texture drives diverse motion across vegetation, synchronized with spline animation.
πΉ Voronoi Clamp Algorithm
Generates organic density clusters with controllable spread and falloff for natural distribution.
πΉ Interactor-Based Deformation
Real-time character interaction fully GPU-driven β no per-vertex loops, maximizing runtime performance.
πΉ Adaptive Surface Height Baking
Pre-baked height data ensures vegetation perfectly conforms to uneven surfaces with zero runtime sampling.
Compatibility
| Unity version | Built-in | URP | HDRP |
|---|---|---|---|
| 6000.3.2f1 | Not listed | Compatible | Not listed |
| 6000.0.62f1 | Not listed | Compatible | Not listed |
| 2022.3.62f3 | Not listed | Compatible | Not listed |
As listed on the Asset Store.