Performance Tips
intermediate performanceGlobal Snow (Built-in) · Troubleshooting & FAQ
Overview
Global Snow (Built-in) is already optimized - the deferred rendering path modifies GBuffers directly with minimal overhead. These tips help you squeeze out extra frames on lower-end hardware.
Choose the Right Rendering Path
| Scenario | Recommended Path | Reason |
|---|---|---|
| Desktop / Consoles | Deferred | Best performance - no extra full-screen blit. GBuffer modification is very efficient. |
| Mobile (mid-range) | Forward + Distance Optimization | Forward path with aggressive distance cutoff keeps fill rate in check. |
| Mobile (low-end) | Decal variant | No full-screen blit at all. Download from the support forum. |
Deferred vs. Forward Performance
Deferred Rendering
- Modifies existing GBuffers directly - no extra rendering pass.
- Exclusions handled via stencil buffer - minimal overhead.
- Best choice for scenes with many lights (deferred already handles them efficiently).
- Use the Fast Mask Shader option (enabled by default) for optimized exclusion rendering.
Forward Rendering
- Uses shader replacement - compiles a snow variant for each RenderType.
- Additional full-screen composite pass required.
- More shader variants = longer build times and more GPU memory.
- Better for simple scenes or when deferred is not available.
Resources/Workflow_Forward folder entirely to eliminate forward shader variants from compilation and builds. Conversely, delete Resources/Workflow_Deferred if you only use forward.
Distance Optimization
This Built-in exclusive feature significantly reduces GPU cost on large scenes by using a simpler algorithm for snow beyond a configurable distance.
| Setting | Impact | Details |
|---|---|---|
| Enable Distance Optimization | High | Uses a flat, simplified snow shader beyond the detail distance. |
| Reduce Detail Distance | High | Lower values (50-100 m) push more snow to the cheap shader. Default: 100 m. |
| Ignore Normals | Medium | Skips normal calculations for distance snow. Flat but faster. |
| Ignore Coverage | Medium | Skips the zenithal coverage check for distance snow. Everything above minimum altitude gets covered. |
Optimization Checklist
| Optimization | Impact | Details |
|---|---|---|
| Use Fastest quality preset | High | Flat shading, smaller coverage texture, 100 m distance optimization. Good for many art styles. |
| Enable Distance Optimization | High | Uses simpler algorithm beyond a set distance. The Medium preset enables this at 500 m by default. |
| Reduce Coverage Extension | Medium | A value of 1 (256x256 m) instead of 2 (512x512 m) halves the coverage area computation. |
| Lower Coverage Quality | Medium | Quality 1 (512x512 texture) instead of 3 (2048x2048) saves significant GPU bandwidth. |
| Set zenithal update to Discrete | Medium | Avoids recalculating coverage every frame. Updates every ~50 m of camera movement. |
| Disable unused features | Medium | Turn off Footprints, Terrain Marks, Snowfall, Camera Frost if not needed. |
| Use Flat Shading | Medium | Skips relief mapping and normal mapping entirely. |
| Enable Smooth Coverage | Low | Smooths coverage with minimal performance cost - enabled by default. |
| Reduce Terrain Marks View Distance | Low | Default 200 m is generous. 50-100 m is sufficient for most games. |
Reducing Shader Variants
Global Snow uses multi_compile directives that generate multiple shader variants. To reduce compile time and build size:
- Delete unused workflow folder: If you only use deferred, delete
Resources/Workflow_Forward. If you only use forward, deleteResources/Workflow_Deferred. - Strip unused features: Open the main snow shader and comment out
#pragma multi_compilelines for features you do not use. - Use Unity's shader stripping: Configure Project Settings > Graphics > Shader Stripping to remove unused variants at build time.
Decal Variant
For the absolute lowest overhead, use the Decal rendering mode available as a separate download from the Kronnect support forum. The Decal variant stamps snow directly onto terrain geometry with no full-screen pass at all, making it ideal for mobile and low-end devices.
Next Steps
- Parameters - detailed reference for distance optimization settings.
- Troubleshooting - resolve common rendering issues.
Suggest an improvement
Help us improve this documentation page.