Global Snow (Built-in) · Core Concepts
By default, Global Snow does not differentiate between static and moving objects. Snow on moving objects can look unnatural as the character or vehicle animates. Follow these steps to handle them correctly:
Remove global snow from the object so it does not receive the scene-wide snow effect:
GlobalSnowIgnoreCoverage script to the GameObject.If you want the object to display snow that stays stable as it moves, assign the GlobalSnow/Moving Object Snow/Opaque shader to its materials. This Standard-based shader integrates snow features directly.
| Shader Parameter | Description |
|---|---|
| Snow Tint Color | Tint applied to the snow on this object. |
| Coverage | Amount of snow coverage (0-1). |
| Snow Scale | Scale of the snow noise pattern. |
| Scatter | Randomness of snow distribution. |
For vehicles, add GlobalSnowColliderExtraInfo to the vehicle root. This script detects wheel-ground contact points and reports them to Global Snow for terrain marks.
To make a humanoid character leave realistic footprints:
GlobalSnowColliderExtraInfo to each foot collider with Is Footprint enabled.The Coverage Mask allows you to paint snow on or off using a texture. The alpha channel controls opacity: 1 = full snow, 0 = no snow.
| Parameter | Description |
|---|---|
| Coverage Mask | The alpha texture. Mapped to world space at the specified center and size. |
| World Center | Center position of the mask in world coordinates. |
| World Size | Size in meters. A size of 2000 means coverage from -2000 to +2000. |
| Fill Outside | When enabled, areas outside the mask are treated as full snow. Default: true. |
Enable the Mask Editor section in the inspector to paint directly in the Scene View:
Use GlobalSnowProfile ScriptableObjects to save and load snow configurations. Create a profile via Create > Global Snow Profile in the Project panel.
profile property at runtime or in the inspector.using GlobalSnowEffect;
// Switch to a blizzard profile
GlobalSnow snow = GlobalSnow.instance;
snow.profile = blizzardProfile;
snow.UpdateMaterialProperties();
Global Snow includes integration support for the VertExmotion asset, which provides vertex-based animation. When VertExmotion is installed in your project:
The Built-in version includes dedicated SpeedTree integration:
| Parameter | Description |
|---|---|
| Update SpeedTree | Enables SpeedTree snow support. Applies snow-compatible shader variants to SpeedTree materials. |
| Remove Leaves | Prunes tree leaves using a SpeedTree variant shader. Creates a winter look by removing foliage. For best results, consider using dedicated winter tree models. |
| Billboard Coverage | Amount of snow rendered on tree billboards. Range: 0-2, default: 1.4. |
Global Snow automatically detects collisions with Unity Terrain. For custom terrain or runtime-created surfaces, add the GlobalSnowCollisionDetector script manually:
gameObject.AddComponent<GlobalSnowCollisionDetector>();
Attach this component to any GameObject to customize how it interacts with the snow mark system:
| Parameter | Description |
|---|---|
| Mark Size | Per-object mark size for each collision impact. |
| Collision Distance Threshold | Minimum distance from the last impact before a new mark is stamped. |
| Is Footprint | If enabled, only a single stamp is left per impact. If disabled, a continuous trail is drawn. |
| Step Max Distance | Maximum distance to connect consecutive trail marks. |
| Rotation Threshold | Minimum rotation in degrees before a new mark is stamped. |
| Ignore This Collider | Prevents this collider from generating any snow marks. |
Help us improve this documentation page.