Additional Topics

intermediate concepts

Global 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 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.

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.

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.
Fill OutsideWhen 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 profile property 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:

ParameterDescription
Update SpeedTreeEnables SpeedTree snow support. Applies snow-compatible shader variants to SpeedTree materials.
Remove LeavesPrunes tree leaves using a SpeedTree variant shader. Creates a winter look by removing foliage. For best results, consider using dedicated winter tree models.
Billboard CoverageAmount of snow rendered on tree billboards. Range: 0-2, default: 1.4.
Tip: SpeedTree support is only available in Forward rendering mode. In Deferred mode, SpeedTree objects receive snow through the standard GBuffer modification.

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:

ParameterDescription
Mark SizePer-object mark size for each collision impact.
Collision Distance ThresholdMinimum distance from the last impact before a new mark is stamped.
Is FootprintIf enabled, only a single stamp is left per impact. If disabled, a continuous trail is drawn.
Step Max DistanceMaximum distance to connect consecutive trail marks.
Rotation ThresholdMinimum rotation in degrees before a new mark is stamped.
Ignore This ColliderPrevents this collider from generating any snow marks.

Next Steps

Was this page helpful?