GPUFloraPainter is a fully GPU-driven procedural foliage system that eliminates the need for traditional GameObject instancing or terrain rendering.🌸 GPUFloraPainter — Real-Time GPU Vegetation SystemA 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 PaintingPaint 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 RenderingLightweight 2D flower billboards attach to grass tips, responding to wind and lighting in sync with the underlying blades.🧠 Fully Procedural DistributionNo 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 ControlURP-compatible Blinn–Phong lighting with smooth tip-to-base color gradients.Flowers use a highly optimized shader for visual clarity on mobile.🌬️ Dynamic Wind SimulationProcedural 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 RenderingRender up to 20 flora types in one pass.Optimized for ASTC compression for stable mobile performance.⚙️ GPU-Optimized CullingVisibility and distance culling computed entirely on GPU with texture-based filtering.🧭 Distance-Based OptimizationSmart LOD fading ensures stable visuals and performance across large environments.🪨 Voronoi Cluster DistributionGenerates non-uniform, organic clustering for more realistic natural patterns.🏞️ Adaptive Surface Height BakingHeight 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.⚡ Technical Overview🔹 GPU Procedural Transform & Spline GenerationAll blade transforms and spline curves are generated procedurally in ComputeShader, guided by the editable FilterMap for paintable regions.🔹 Single Dispatch ArchitectureOnly one ComputeShader dispatch and two DrawMeshInstancedIndirect calls render the entire scene — minimizing CPU–GPU sync.🔹 ComputeShader-Based CullingFrustum, distance, and mask-based culling all occur on the GPU, ensuring real-time responsiveness and scalability.🔹 RenderTexture-Based OutputCulling results are stored in RenderTextures, not SSBOs — ensuring full compatibility with mobile GPUs.🔹 Billboard Attachment SystemFlower sprites align dynamically with grass tips and inherit wind motion, maintaining perfect animation consistency.🔹 ComputeShader Brush EditingFull GPU read/write to RenderTextures and TextureArrays enables multi-layer vegetation control without costly blit operations.🔹 Flora Type ManagementSupports up to 20 configurable flora types, with optimized ASTC compression for mobile efficiency.🔹 Shadow RenderingScreen-space flora shadows implemented as URP RenderFeature impostors, using FilterMap-driven projection with noise filtering for smooth edges.🔹 Randomized Wind GenerationProcedural Wind Noise Texture drives diverse motion across vegetation, synchronized with spline animation.🔹 Voronoi Clamp AlgorithmGenerates organic density clusters with controllable spread and falloff for natural distribution.🔹 Interactor-Based DeformationReal-time character interaction fully GPU-driven — no per-vertex loops, maximizing runtime performance.🔹 Adaptive Surface Height BakingPre-baked height data ensures vegetation perfectly conforms to uneven surfaces with zero runtime sampling.




