Global snow effect


So basically if a game happens in different times of year and thus at winter everything should be snow covered it is really a waste of resources to have 2 texture sets per asset just to get the snow in. And I know we have add the snow simply by projecting it along the height axis in the material but that also means having 2 materials per various assets too which is again not efficient.

A) Is there anyway we can add snow to everything as a whole and not per individual asset?

B) If A is doable is there a way to then mask some assets out for example interiors?


No frickin clue as I’m not a programmer. However…just spitballin’ here… for some reason I’m thinking you could write something that would “over-write” the Z axis ‘shader’ for everything that was touched/hit/lit by a special Directional Light in the scene. The light would basically project down, obviously, so it would “light” everything directly from the top. Now, your shader or C++ class (or whatever they’re called) would look at that and apply white/snow as light. Things under other things (say, a pair of boots under a table) wouldn’t get this ‘white snow shader’ applied to the top (Z) because it isn’t hit by the special Directional Light (the boots are in shadow).

Does that make any sense? I have NO idea how that would be done, or even if it is possible…but that was the first thing that came to mind. A special shader attached to a directional light. I know that you can have shaders that only affect some particular axis, but I think those don’t take into account ‘cover’ (like the boots under the table)…hence, my attaching a condition to the Z thing based on the Directional Light.


This should work. UE4 - Snow Cover - Material Parameter Collections - YouTube