Additional Topics
intermediate conceptsGlobal Snow (Built-in) · Core Concepts
Moving Objects (Characters, Vehicles)
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:
Step 1 - Exclude the Moving Object
Remove global snow from the object so it does not receive the scene-wide snow effect:
- Assign the object to an exclusion layer in the Coverage section of the Global Snow inspector, or
- Attach the
GlobalSnowIgnoreCoveragescript to the GameObject.
Step 2 - Apply the Moving Object Snow Shader
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. |
Step 3 - Vehicle Wheel Tracks (Optional)
For vehicles, add GlobalSnowColliderExtraInfo to the vehicle root. This script detects wheel-ground contact points and reports them to Global Snow for terrain marks.
Humanoid Character Footprints
To make a humanoid character leave realistic footprints:
- Place a collider on each foot bone of the character.
- Add
GlobalSnowColliderExtraInfoto each foot collider with Is Footprint enabled. - The snow mark system will stamp a print each time a foot touches the ground.
Coverage Mask Editor
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.
Inspector Setup
| 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. |
Scene View Mask Editor
Enable the Mask Editor section in the inspector to paint directly in the Scene View:
- Resolution - 1024 for coarse, 2048-8192 for fine detail.
- Brush Mode - add or remove snow.
- Width / Fuzziness / Opacity - brush settings.
- Fill Mask - reset to fully snowed.
- Clear Mask - remove all snow from the mask.
Profile Lerping
Use GlobalSnowProfile ScriptableObjects to save and load snow configurations. Create a profile via Create > Global Snow Profile in the Project panel.
- Save profile: drag the GlobalSnow component settings into a profile asset.
- Load profile: assign the profile to the
profileproperty at runtime or in the inspector. - Smooth transitions: combine profiles with Snow Volumes for gradual property changes.
using GlobalSnowEffect;
// Switch to a blizzard profile
GlobalSnow snow = GlobalSnow.instance;
snow.profile = blizzardProfile;
snow.UpdateMaterialProperties();
VertExmotion Integration
Global Snow includes integration support for the VertExmotion asset, which provides vertex-based animation. When VertExmotion is installed in your project:
- Snow coverage automatically accounts for vertex displacement caused by VertExmotion animations.
- No additional setup is required beyond having both assets in the project.
SpeedTree Support
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. |
Snow Marks on Non-Terrain Objects
Global Snow automatically detects collisions with Unity Terrain. For custom terrain or runtime-created surfaces, add the GlobalSnowCollisionDetector script manually:
gameObject.AddComponent<GlobalSnowCollisionDetector>();
GlobalSnowColliderExtraInfo
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. |
Next Steps
- Snow Volumes - trigger-based zones for modifying snow properties.
- Scripting Support (C#) - runtime API reference.
- Performance Tips - optimization strategies.
Suggest an improvement
Help us improve this documentation page.