Table of Contents

Global Surface Settings


Properties in this category allow you to customize scene surfaces globally, meaning changing any property here will affect the entire scene unless the object's materials use a property override.

Enable Coverage

Enables coverage in materials that use Weatherade shaders. If disabled, then the shaders will act like Unity Standard shadar.


Basic Settings


In the URP some properties in this category are divided into 3 layers which allows to use up to 3 different snow types. By default, only one layer is used. Additional layers can be activated on a per material basis.

Paintable Coverage

This option enables the ability to edit the automatically generated coverage occlusion mask. Vertex colors are used for regular MeshRenderes, and Terrains use an additional texture-mask. Both can be painted with Total Brush which is included in the package. In BiRP currenty only ⠀R⠀ channel is used. In URP all 4 channels can be utilized, if different snow layers are used.

It's recommended to enable this option on a per-material basis, instead of enabling it globally from a Coverage Instance, as this incurs a performance overhead.
This feature uses additional vertex streams which is incompatible with the static batching.

Use Average Normals

If this option is enabled, the shader will use an additional set of normals stored in the UV4 channel. This helps eliminate mesh “cracks” when using displacement and improves the coverage on meshes with split normals.

It's not recommended to use this feature on very primitive meshes such as cubes, as it may produce weired results. Works better on more organic objects with a denser mesh.

Generate these normals by selecting an object in the scene and clicking the “Average Normals” button in its material UI, or go to the Total Brush window and click the same button there.

It's recommended to enable this option on a per-material basis, instead of enabling it globally from a Coverage Instance, as this may incur a little performance overhead.
This feature uses additional vertex streams which is incompatible with the static batching.

Stochastic Sampling

Enables stochastic sampling that eliminates visible tiling artifacts. This option has a performance overhead because the texture fetch operation is performed 3 times instead of 1.

Coverage Texture

Texture which is used to build the snow coverage surface.
It uses a specific channel mapping:

This texture must be imported with the following settings otherwise it will look wrong:

  • Texture Type: Default
  • sRGB: disabled

All other settings can be left as default.

Tiling

The uniform tiling value of the Coverage Texture.

Color

Color of the coverage.

Smoothness (URP only)

Coverage smoothness range. Remaps the Coverage Texture alpha channel, which is used as smoothness.

Normal Scale

Bumpiness of the coverage. The ⠀R⠀ and ⠀G⠀ channels of the Coverage Texture are used to construct normals.

Amount

Amount of the сoverage applied to the surface.

Triplanar Blend Hardness (URP only)

Blend hardness between the triplanar projections.

Emission Masking

Masks the base surface emission effect by the coverage.

Coverage Normals Overlay

Forces to overlay coverage normals over the base surface normals even when Displacement is disabled. This value is a linear interpolation between the base normal map and the coverage normal map.


DETAIL MAP (URP only)


Detail map can help to improve the snow surface details close to the camera.

When using this feature you can put a lower resolution texture into the Coverage Texture slot, since the detail map will increase the detail anyway. This reduces the memory overhead and makes the snow even better.

Detail Texture

Texture used for the detail mapping. Channel mapping used:

This texture must be imported with the following settings otherwise it will look wrong:

  • Texture Type: Default
  • sRGB: disabled

All other settings can be left as default.

Tiling

Tiling of the Detail Texture.

Remap

Remap the Detail Texture ⠀B⠀ channel, which is used for the smoothness/Color Enhance.

Normal Scale

Micro-relief scale of the details.

Distance

The distance in units where the details will fade out.

Do not use too high values to prevent surface noise at a distance.

AREA MASK


Area mask settings allow you to control how the coverage occlusion will look. All parameters here are related to each other.

Mask Range

Range of the coverage mask values. A value of 1 means the transitions between the coverage and base surfaces are as soft and wide as possible.

Bias

The bias of the coverage area.
This property is needed for two things:

Internally it works similar to the shadow bias property on the Unity light sources.

It's recommended to use values greater than 0.05 to get better results. For terrains, you can use something like 0.1 to make the transitions more soft.

Leak Reduction

Reducing coverage leaks at the cost of increasing mask hardness.

The coverage instance renders the scene depth and blurs it to get soft coverage transitions, which results in a side effect called “leakage” or “bleading”. It looks similar to well-known light leaking artifacts, because Weatherade uses one of the soft shadows algorithm, called VSM

Direction Offset

The linear offset from the original direction of the coverage instance. Values below 0 will create a stronger direction-dependent coverage mask, and values greater 0 can help add more coverage on the opposite side of the direction of the coverage instance. Internaly it just adds this value to the coverage direction mask.

The precipitation direction is given by the Coverage Instance transform.

On the examples below the coverage instance transform direction is set straight down:

Direction Range

Shrink/expand the coverage direction mask gradient. You can make the direction mask more hard lowering the range.


TESSELLATION


Improves the appearance of a surface when using the Displacement feature by subdividing the mesh triangles.

This feature is performance intensive. It's recommended to enable it on a per-material basis and use its settings very carefully. Also it's not recommended to use it if you don't use the Traces feature.

Weatherade implements the Edge Length tessellation method with some specific additions, that improves performance:

Example of the data-driven tessellation in action:

Edge Length

Maximum screen-space length of the edge. Edges longer than this value will be subdivided.

Snow Factor

Multiplier for the overall snow surface tessellation.

Snowdrift Range

Range of mask that used to increase the tessellation factor on snowdrift slopes.

Frustum Culling Offset

Maximum distance from camera's clip planes on which tessellation should not be applied.
Weatherade tessellation uses Frustum Culling to improve performance on large meshes by appling tessellation only for visible triangles. When Displacement is used you should increase this value to compensate the displacement and prevent mesh clipping. The higher the Coverage Displacement value, the larger this value should be. This can be especially noticable on a terrain mesh.

If increasing this value does not help and there are still clipping artifacts on the terrain, you should increase the Bonunds Multiplier value in the Terrain Utility component.

DISPLACEMENT


In the URP some properties in this category are divided into 3 layers which allows to use up to 3 different snow types. By default, only one layer is used. Additional layers can be activated on a per material basis.

This feature allows you to raise the vertices of the mesh by the coverage mask, creating realistic snowdrifts.

This has some overhead, so it's recommended to enable this feature on a per-material basis only for surfaces such as terrain and other important objects, where you need a real snow volume.

Height Contrast

The contrast of the coverage height, when using the Displacement feature. For this purpose, the ⠀B⠀ channel of the Coverage Texture is used.

Heightmap LOD (URP only)

Defines the height map MIP level. Use higher values to get rid of noisy displacement.

Coverage Displacement

The amount of displacement added to the mesh verices. It depends on the Coverage Texture ⠀B⠀ channel, as it's used as a height map and multiplied by this value.

Offset

Offsets the black point of the coverage mask gradients. This useful to prevent unnecessary displacement on some not-covered areas.

See how the snowdrift's displacement starts too early and lifts the base surface when the Offset is too small:


TRACES


In the URP some properties in this category are divided into 3 layers which allows to use up to 3 different snow types. By default, only one layer is used. Additional layers can be activated on a per material basis.

Enables interactive traces on the snow coverage.

This feature requres an additioanl component, called Trace Mask Generator, which must be added to the Coverage Instance gameobject and configured properly.

If you haven't already added the Trace Mask Generator component, you will be prompted to do so. Click the “Add Now” button.

In Built-in RP it also requires the objects to use Weatherade shaders or a special Tracer component on them.

Base/Snow (URP only)

Blend factor between the base surface and coverage. If set to 0, the base texture will be visible inside the traces.

Color

Multiplier color of the generated traces. You can use it to simulate greater depth or ambient occlusion effects within a trace. If the color is set to white it will have no effect as it is internally multiplied by the coverage color.

In URP the Color alpha is used as Blend.
Blend (Built-in RP only)

Factor of the linear blend between the coverage color and Color.

Range

Range of the trace mask, used for the color Blend. You can shrink this range to get sharper mask.

Normal Scale

The normal scale of the generated traces.

Use Detail Texture

Determines whether traces will use the global Detail Texture.

Detail Texture

The global texture, that used to add details to the generated traces.

It uses a specific channel mapping:

This texture must be imported with the following settings otherwise it will look wrong:

  • Texture Type: Default
  • sRGB: disabled

All other settings can be left as default.

Tiling

The uniform tiling of the Detail Texture.

Normal Scale

The normal scale of the details.

Detail Intensity

The intensity of the detail displacement, applied to the generated traces.


BLEND BY NORMALS


Tweaking properties here can help make coverage transitions more organic.

Strength

The amount of base surface normal map influence on the coverage transitions blending. Consider this like the well-known height blending technique, but without the need to provide an additional height map, since Weatherade simulates this using a normal map.

Power

Power of the normal map blending. This just raises the faked height map to a math power.


DISTANCE FADE


Applied to terrains only.

This feature allows you to eliminate the tiling artifacts on terrains by blending between original textures and LOD textures with lower tiling values.

Be sure to bake your terrain LOD textures using the Terrain Utility component to use this feature.

Start Distance

The distance from camera at which the baked LOD texture starts to appear.

Folloff

The size of the fading gradient for the original/LOD texture. The higher the value, the softer the blend will be.


SPARKLE AND SSS


In the URP some properties in this category are divided into 3 layers which allows to use up to 3 different snow types. By default, only one layer is used. Additional layers can be activated on a per material basis.

Sparkle effect adds these little shinny dots on the surface, which improves the snow appearens. SSS (SubSurface Scattering) simulates light penetration into the surface and exiting from different point.

To take effect in Deferred rendering path these two toggles must be enabled/disabled together, as Weatherade uses a single empty channel of the normals GBuffer texture to pass the snow mask to the final lighting stage, where these effects can be calculated.

SSS

Enables subsurface scattering effect on the snow.

Intensity

Intensity of the subsurface scattering effect.

Sparkle

Enables sparkle effect on the snow surface.

Mask

Optional black and white texture which ⠀R⠀ channel is used as a sparkle effect mask. If no texture is provided, the alpha channel of the main coverage texture can be used.

Amount

Amount of snow sparkle effect. This value depends on the Mask texture.

Brightness

Brightness of the snow sparkle effect.

It's recommended to use the Bloom post process effect to improve the sparkle appearance.
Distance Fallow

Maximum draw distance of the sparkle effect. Decrease this value to prevent unwanted noise and artifacts on far distances.

Local-Space Mask Source

Source for the sparkle mask which will be used in the object local space.

LS Tiling

Uniform tiling of the local space mask.

Scree-Space Mask Source

Source for the sparkle mask which will be used in the screen space.

SS Tiling

Tiling of the screen-space mask.

Highlight Mask Expansion

Expansion of the highlight mask, that is used to show the sparkle effect only on highlights from the lights sources.

Lightmap Mask Power

Power of the lightmap mask. Values greater than 0 prevent the Sparkle and SSS effect in dark areas, when baked lighting is used.

Color Enhance (URP only)

Enhance the snow surface color. The Coverage Texture ⠀A⠀ + Detail Texture ⠀B⠀ channels are used as a source.

Highlight Brightness (URP only)

Brightness of the highlight from the main light.

SSS Remap (URP only)

Remap the SSS mask values. Coverage Texture ⠀A⠀ + Detail Texture ⠀B⠀ channels are used as a source.

Color Enhance Remap (URP only)

Remap the color enhance mask. Coverage Texture ⠀A⠀ + Detail Texture ⠀B⠀ channels are used as a source.