Performance Tips
intermediate performanceGlobal Snow & Rain 3 · Troubleshooting & FAQ
Overview
Global Snow adds the snow to the G-buffer during the deferred pass, so the base cost does not depend on how many materials the scene has. The cost grows with the features you turn on. These tips help you keep the frame rate up on lower end hardware or in large scenes.
Start With a Performance Level
The Performance Level in the Weather block, also on profiles, limits the main quality options. Best is the default. Best, Medium and Fastest lower these settings only when they are higher than the level allows, so your lower values are kept and the settings stay editable. When a level lowers one, the inspector says so under it, for example "Performance Level Medium uses Normal Mapping." The table shows the highest value of each level:
| Setting | Best | Medium | Fastest |
|---|---|---|---|
| Complexity | Relief Mapping | Normal Mapping | Flat Shading |
| Mesh Detail | 0.5 | 0.25 | 0.25 |
| Coverage Quality, from the Coverage Extension | 0.5 m per pixel, up to 2048 pixels | 0.5 m per pixel, up to 2048 pixels | 1 m per pixel, up to 1024 pixels |
| Running Drops > Half Resolution | Your setting | On | On |
| Collision Marks > Extents | 2048 | 2048 | 1024 |
| Snowflakes | All | All | Half |
| Snow Accumulation, Running Drops and Rain Splashes | Your settings | Your settings | Off |
With Fastest, Snow Accumulation, Running Drops and Rain Splashes keep their value and show "Off with Performance Level Fastest". Deep Marks then draw nothing, so turn on Footprints and Collision Marks to keep marks on low end devices. Custom uses your settings as they are, so pick it for values above those of Best, such as a Mesh Detail above 0.5 or Collision Marks Extents of 4096. Scripts can change performanceLevel and those settings at runtime under any level, for example from the graphics menu of a game.
Optimization Checklist
| Optimization | Impact | Details |
|---|---|---|
| Set unused effects to 0 | High | Snowfall, Snow Dust, Frost, Camera Frost, Rain, Puddles and Camera Rain at 0 turn that effect off. Rain and Puddles start at 0: leave them there if your scene needs no water, so the water work is skipped. Temperature and Intensity set several of these effects, so check them again after you move those sliders. |
| Running Drops at Half Resolution, or off | High | Running drops are the heaviest part of the rain. Half Resolution roughly halves their cost, and Performance Level Medium uses it. Turn them off if you do not need them. |
| Use a lower Complexity | High | Flat Shading is the fastest, without normal detail or relief. Normal Mapping sits in the middle. Lower it yourself, or use a lower Performance Level, which limits it. |
| Add to the Receivers only the meshes that need it | High | Each mesh in the Receivers adds GPU time near the camera, more the larger the area it covers. Add only the meshes that need a real snow thickness, such as roofs or roads. |
| Lower the Coverage Quality | Medium | A smaller coverage texture is cheaper to capture and to read, but behind walls thinner than one coverage texel a little snow can get into rooms. Performance Level Fastest limits it to pixels of at least 1 m. With a Coverage Extension above 1, the quality is at least 2. |
| Keep Coverage Update on Discrete | Medium | Discrete captures the coverage again only after the camera moves the Update Distance, 50 meters by default. Raise it with a large Coverage Extension. Use Manual for static scenes and call UpdateSnowCoverage() when needed. Avoid Every Frame unless large moving objects must block snow in real time. |
| Leave out cameras that do not need snow | Medium | Each Game camera that shows snow keeps its own captures, which take GPU memory and run again when the camera moves far. Take minimap or render texture cameras out with the Cameras Layer Mask of the Global Snow Render Feature. |
| Turn off Deep Marks if you do not need them | Medium | Deep Marks keep extra work running in Play mode for the snow accumulation around the camera. |
| Lower Mesh Detail | Medium | Mesh Detail under Snow Accumulation sets how fine the accumulation mesh is on terrains, everywhere. Higher values cost more GPU time, and 0 keeps the terrain's own mesh. Performance Level Medium and Fastest limit it to 0.25, and you can set a lower value under any level. |
| Turn off Snow Accumulation if you do not need a real thickness | Medium | With Receivers, Snow Accumulation draws them again as a snow surface and keeps a capture of them from above in the 128 m around the camera, about 56 MB of GPU memory, taken again each time the camera moves 16 m. Turn it off in Snow Appearance when the surface snow is enough. Performance Level Fastest turns it off. |
| Use Precise only where it is needed | Medium | Precise under Block Snow/Rain in Global Snow Ignore Coverage captures those objects from above in the 128 m around the camera, again whenever one of them moves or the camera moves 16 m, with about 24 MB of GPU memory. Use it on parked objects such as cars. Without precise objects nothing is captured. Include Transparents adds one more draw of the transparent parts of the object per camera while the whiteout shows or it rains. |
| Leave Add Snow To Forward Opaques off unless you need it | Medium | It adds a pass over the objects drawn only in the forward pass and, without SSAO, a depth and normals pass of those objects. |
| Lower Snowfall and Snow Dust | Medium | The Snowfall slider sets how many flakes are drawn, and Snow Dust sets how many puffs are drawn. Reduce Emission Distance to keep the flakes closer to the camera. Performance Level Fastest draws half the flakes. |
| Disable unused features | Medium | Turn off Footprints, Collision Marks, Impact FX, Frost and Camera Frost if your scene does not need them. Keep Wall Wetness at 0 unless walls must look damp without rain, and set the Deep Marks Shadow to 0 to skip it. |
| Turn off Compare when you are done | Medium | Compare with Same Side renders the scene a second time with a copy of the game camera. |
| Leave particles and small moving objects out of the Zenithal Mask | Low | They do not need to block snow, and the top-down capture has less to draw. |
| Limit the cameras | Low | Use Cameras Layer Mask in the Global Snow Render Feature to skip cameras that do not need snow. |
Exclusion Optimization
Excluding objects with Global Snow Ignore Coverage renders them into a mask. To keep this cheap:
- Keep Use Fast Mask Shader enabled (default) unless the excluded object uses vertex animation.
- Prefer the Layer Mask when you exclude many objects that share a layer.
- Change Exclusion Depth Bias to fix border artifacts before you turn on Exclusion Double Sided.
Rain Performance
- Running drops are drawn only on the Game and Scene View cameras, and only near the camera.
- With Rain Ripples above 0 and some puddles, the rain also draws its impacts on the water. If your scene shows no puddles while it rains, set Puddles or Rain Ripples to 0.
- Contact Ripples work only in Play mode and only on puddles.
- Rain Splashes add their own pass while it rains, also with Puddles at 0. Set Rain Splashes to 0 when you do not need them.
Profiling
Use the Frame Debugger (Window > Analysis > Frame Debugger) to see the Global Snow passes and their order. Look for the snow pass after the G-buffer, the Snow Accumulation passes named Global Snow Layer just before it, the running drops before the transparent objects, and the top-down coverage capture.
Turn on Show Coverage Depth in the Coverage foldout to see the heights seen from above, lighter for higher surfaces, and check what takes part in the capture.
Next Steps
- Troubleshooting - solutions to common rendering issues.
- Parameters - adjust quality and coverage settings.
Suggest an improvement
Help us improve this documentation page.