Spruce Nature
A highly optimized URP environment pack for mobile. Includes 8 spruce trees, 1 grass patch, and custom shaders for foliage and LOD impostors with full GPU instancing and SRP batching support.
by Hipernt
Price History +
Spruce Nature
Spruce Nature is an environment asset pack designed specifically for mobile platforms and low-end hardware. Every Tree and Grass comes with it's own LOD. It provides a cohesive collection of spruce trees and grass models, built from the ground up to minimize draw calls and maximize rendering performance in Unity's Universal Render Pipeline (URP).
Asset Contents
The pack is structured to keep memory usage and batching costs as low as possible.
- 8 Unique Spruce Tree Models: Ranging from young saplings to fully grown variations.
- 1 Grass Patch Model: Optimized for dense scattering.
- Shared Material Architecture: All 8 tree models share exactly 2 materials (one for bark, one for leaves). The grass utilizes 1 dedicated material. This ensures excellent batching and very few state changes for the GPU.
Custom Shader Suite
Spruce Nature includes four custom-written URP shaders. These shaders were developed to balance visual fidelity with strict performance budgets. Every shader fully supports the SRP Batcher and GPU Instancing, allowing you to render dense forests efficiently.
Global Material Features
Most shaders in this pack include built-in color adjustments. You can modify the Hue, Saturation, Value, and Contrast directly within the Unity Inspector, allowing you to create multiple biome variations (like autumn or dead forests) using the exact same base textures.
1. Bark Shader
- Vertical Ambient Occlusion Gradient: Procedurally darkens the bottom of the tree trunks based on object space, anchoring the trees naturally to the terrain without requiring custom vertex colors.
- Wrap Lighting: Softens harsh directional lighting on the cylindrical trunk meshes to provide a more natural, rounded shading falloff.
- Shadow Floor: A shadow minimum threshold that prevents areas under heavy canopy cover from turning unnaturally pitch-black.
2. Leaf Shader
- Procedural Wind System: Includes parameters for wind speed, frequency, direction, and strength. The sway is masked by a customizable gradient so branch tips move dynamically while the roots stay firmly attached to the trunk.
- Subsurface Scattering: Translucency support allows directional sunlight to naturally bleed through the leaf planes.
- Double-Sided Lighting: Ensures accurate shading on both the front and back faces of the leaf geometry.
- Cascaded Shadow Fixes: Calculates shadow mapping on a per-pixel basis to eliminate jagged shadow acne artifacts as the camera moves.
3. Grass Shader
- Root-Anchored Wind: Utilizes object-space Y-axis calculations to ensure the top of the grass sways while the roots remain perfectly still.
- Vertical Alpha Gradient: Uses a dithered alpha clipping method near the bottom of the mesh to blend the grass smoothly into the terrain, hiding harsh geometric intersections.
- Double-Sided and Wrap Lighting: Keeps the grass visible and naturally lit from all viewing angles.
4. LOD Impostor Shader (Tree Cards)
- Aggressively Optimized: Designed specifically for rendering distant background trees.
- Modular Compilation: Uses local shader features that allow you to toggle Normal, Roughness, and Translucency maps on or off via simple checkboxes. If a map is disabled, the shader compiler completely strips the mathematical instructions from the code, saving maximum performance on mobile devices.