Additional Topics

intermediate concepts

Global Snow · 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 GlobalSnowIgnoreCoverage script to the GameObject.
Scene View vs. Game View: Exclusion results may appear incorrect in the Scene View due to how CommandBuffers work. Always verify in the Game View.

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, so the snow does not shift with animation.

Shader ParameterDescription
Snow Tint ColorTint applied to the snow on this object.
CoverageAmount of snow coverage (0–1).
Snow ScaleScale of the snow noise pattern.
ScatterRandomness 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:

  1. Place a collider on each foot bone of the character.
  2. Add GlobalSnowColliderExtraInfo to each foot collider with Is Footprint enabled.
  3. The snow mark system will stamp a print each time a foot touches the ground.

Snow Volumes

Snow Volumes are trigger zones that disable snow when the camera enters them — perfect for indoor areas, caves, or shelters.

  1. Drag the GlobalSnow Volume prefab from GlobalSnow/Resources/Prefabs into your scene.
  2. Position it and scale the collider to match the indoor area.
  3. When the camera enters the volume, snow is automatically disabled. It re-enables when the camera exits.

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

ParameterDescription
Coverage MaskThe alpha texture. Mapped to world space at the specified center and size.
World CenterCenter position of the mask in world coordinates.
World SizeSize in meters. A size of 2000 means coverage from -2000 to +2000.

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 covered area.
Unity standard trees and grass: If your scene uses Unity's built-in tree or grass system, you must also edit GlobalSnowForwardOptions.cginc or GlobalSnowDeferredOptions.cginc and uncomment the #define GLOBALSNOW_MASK line.

Per-Object Exclusion (GlobalSnowIgnoreCoverage)

Attach this script to any GameObject for fine-grained control:

OptionDescription
Block SnowObject acts as a blocker, preventing snow beneath it (shelters, roofs).
Receive SnowObject and its children receive snow coverage.
Use Fast Mask ShaderUses an optimized mask shader for exclusion. Disable for vertex-animated objects.
Exclusion Cut OffAlpha threshold below which snow is excluded.

Disabling Zenithal Coverage

If your scene does not need occlusion (e.g., a flat terrain with no overhangs), you can disable the zenithal depth pass entirely:

  1. Set Coverage Update to Manual in the inspector.
  2. Edit GlobalSnowDeferredOptions.cginc or GlobalSnowForwardOptions.cginc and comment out:
// #define USE_ZENITHAL_DEPTH

Transition / Lerping Between Profiles

All Global Snow properties are animatable. For quick transitions between two snow configurations, use the GlobalSnowLerp script:

  1. Add the Global Snow Lerp component to any GameObject.
  2. Configure Profile 1 and Profile 2 with different snow settings.
  3. Adjust the Transition slider (0 = Profile 1, 1 = Profile 2) to blend between them.
ParameterDescription
Target Global SnowAuto-detected at Start. Assign manually if you instantiate the camera after scene load.
TransitionBlend factor: 0 = Profile 1, 1 = Profile 2.
Left / Right KeyKeyboard shortcuts to decrease/increase the transition value at runtime.
Profile 1 / Profile 2Complete snow configuration presets to lerp between.

Third-Party Integrations

VertExmotion

If you exclude characters that use VertExmotion from snow coverage, enable the integration to avoid artifacts:

  1. Edit GlobalSnowDeferredOptions.cginc (deferred) or GlobalSnowForwardOptions.cginc (forward).
  2. Uncomment the following lines and verify the include path:
#define ENABLE_VERTEXMOTION_INTEGRATION
#include "Assets/VertExmotion/Shaders/VertExmotion.cginc"

Vehicle Physics Pro

Global Snow works out of the box with Vehicle Physics Pro:

  1. Add GlobalSnowColliderExtraInfo to the vehicle root to detect wheel contacts.
  2. Exclude the vehicle from global coverage (layer mask or GlobalSnowIgnoreCoverage).
  3. Assign the GlobalSnow/Moving Object Snow/Opaque shader to vehicle materials for stable snow on the body.

Next Steps

Was this page helpful?