Additional Topics

intermediate concepts

Global Snow (URP) · Core Concepts

Moving Objects (Characters, Vehicles)

By default, Global Snow does not differentiate between static and moving objects. Snow on moving objects can shift 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:

  • Remove the object's layer from the Layer Mask in 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. Always verify in the Game View.

Step 2 - Apply a Snow Material (Optional)

If you want the object to display snow that stays stable as it moves, use a custom material that integrates snow features directly so the snow does not shift with animation.

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.

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 MaskEnable the mask system and assign an alpha texture.
World CenterCenter position of the mask in world coordinates.
World SizeSize in meters. Controls the area the mask covers.
Fill OutsideWhen enabled, areas outside the mask bounds receive full snow.

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.

Per-Object Exclusion (GlobalSnowIgnoreCoverage)

Attach this script to any GameObject for fine-grained control over snow coverage. It affects the object and all its children.

OptionDescription
Receive SnowWhen enabled, forces the object to receive snow even if its layer is excluded from the Layer Mask (acts as an override). When disabled (default), the object is rendered into the exclusion buffer and will not show snow.
Block SnowWhen enabled, the object blocks snow on surfaces beneath it during the zenithal pass (use for shelters, roofs, bridges). When disabled (default), the object is temporarily moved to the exclusion layer during the zenithal capture, so it does not cast coverage shadows downward.
Use Fast Mask ShaderUses an optimized depth-only shader for exclusion rendering. Disable for objects with vertex animation in custom shaders, so the exclusion mask matches the deformed mesh. Default enabled.
Exclusion Cut OffAlpha threshold for semi-transparent objects. Pixels with alpha below this value are not excluded. Range 0-1.
Tip: To exclude an object on Layer 0 (Default) from snow, add GlobalSnowIgnoreCoverage with Receive Snow disabled. The Layer Mask cannot exclude objects on Layer 0.

Per-Collider Settings (GlobalSnowColliderExtraInfo)

Attach this script to any GameObject with a collider to customize how it interacts with terrain marks and snow surfaces. Also supports WheelCollider automatically - wheel-ground contact points are reported for terrain marks each frame.

OptionDescription
Mark SizeSnow mark radius for this specific collider. Default 0.25.
Is FootprintStamps a single footprint instead of a continuous trail. Enable for foot colliders on humanoid characters.
Collision Distance ThresholdMinimum distance between consecutive marks. Prevents overlapping stamps. Default 0.1.
Step Max DistanceMaximum distance for trail interpolation between frames. Prevents gaps when moving fast. Default 20. Set to 0 to disable interpolation.
Rotation ThresholdMinimum rotation (in degrees) to trigger a new mark. Default 3.
Ignore This ColliderCompletely ignore this collider for snow marks.
Override Sink DepthOverride the SnowSurface sink depth for this collider.
Snow Surface Sink DepthMaximum deformation depth in meters when overriding. Default 0.05.

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 late.
TransitionBlend factor: 0 = Profile 1, 1 = Profile 2.
Left / Right KeyKeyboard shortcuts to decrease/increase the transition at runtime.
Profile 1 / Profile 2Complete snow configuration presets to lerp between.

Coverage Update Methods

The zenithal depth pass can be updated in several modes:

MethodWhen to Use
Every FrameScenes with frequently moving dynamic objects over snow areas.
DiscreteMost scenes. Recalculates when the camera moves a threshold distance.
ManualFully static scenes. Call UpdateSnowCoverage() from script when needed.
DisabledNo coverage updates. Snow placement is fixed.
Tip: Use Discrete for the best balance of quality and performance. Switch to Every Frame only if you have large moving objects that must cast snow occlusion in real time.

Next Steps

Was this page helpful?