Foliage Renderer
The Foliage Render is a replacement renderer for Unity Terrain Tree's and Details rendering, using Instance Indirect rendering for faster rendering.
The Foliage Renderer replaces Unity Terrain's Tree and Detail rendering with a faster, indirect rendering path.
Features:
- GPU based rendering, freeing up significant CPU time
- Cell based Streaming and Culling of terrain details
- GPU based Frustum Culling
- GPU based HI-Z Occlusion Culling in BiRP, HDRP & URP
- Supports up to 4 LODs per object with LOD Crossfade Support
- Supports LODs on Unity Terrain Details
- Support for Single Pass Stereo Rendering
- Ability to pass Height, Normal, and Albedo of terrain, as well as user defined per-terrain data to vegetation shaders.
- Custom shaders and shader code to allow conforming objects to the terrain
- Custom shaders and shader code to allow tinting objects with the terrain's albedo
- Can overload visible distance and shadow distance per object
- Can overload max LOD usage for faster shadow rendering
- Compressed data structures for faster processing and reduced memory usage
- Works with The Vegetation Engine shaders
- Includes it's own shader and stackables for Better Shaders, which supports albedo tint, conforming to the terrain, wind animation, and instancing support.
- Shader graph node for adding indirect instancing support to existing shaders
- Shader patcher to modify external 3rd party shaders
- One menu item selection to convert existing terrains to Foliage Renderer
- All source code included
Technical details
Requires Compute Shaders, Unity's Mathamatics, Burst, Jobs, and Collections packages. Requires modifications to existing shaders, and shaders must use dithered alpha or clipmaps instead of regular alpha.