|Other Things to See:||Peculiar to snow is the idea of ``flake flutter'', where falling ice crystals are affected by crystal shape and atmospheric micro-turbulence. These local disturbances can prevent falling snow from descending in a straight line, instead allowing flakes to sidestep blocking obstacles and land underneath on surfaces that have no direct exposure to the sky.|
|Where an obstacle, such as a porch or a bush, blocks the ground underneath, the flake flutter effect eventually produces an occlusion boundary between completely blocked and unblocked areas. Over billions of flakes, these occlusion boundaries exhibit a smooth drop-off, where the shape of the curve and amount of snow under an object depends on the size, shape, and number of blocking occlusions, the closeness of the occlusion to the ground, and the magnitude of the fluttering effect.|
|Flake flutter causes snow to accumulate under obstacles, even in areas that cannot directly see the sky. The above image shows the left-to-right effect of increasing the flutter amount.|
Our goal is to generate an accumulation pattern for every surface in the model, where the amount of snow each surface receives is proportional to the occlusion factors described above. Thus, simulating and modelling an accumulation pattern is akin to raytracing for light, except that we are interested in path (instead of straight-line) visibility.
The mesh improves only where needed.
|Our approach is to allow launch sites on each surface to emit a series
of particles aimed upwards towards a sky bounding plane. As particles
flutter upwards, they are checked for intersection with intervening surfaces,
where a ``hit'' indicates that a particle is somehow blocked, and cannot
contribute snow to its source surface. A ``miss'' means that the particle
made it through or around all blocking obstacles and reached the sky.
As particles reach or are blocked from the sky they slowly build a picture of a given launch site's sky occlusion. New launch sites are added whenever the particle tracing indicates that there is an interesting difference with nearby neighbours. Likewise, launch sites can be removed whenever nearby neighbours are consistently confident that they are either completely exposed or completely occluded.
|The rationale for shooting upwards generally arises
from the need for control: the idea that each individual surface can locally
influence its resolution by deciding how many launch sites it needs, and
how many particles each site should shoot. Each launch site is given an
importance ordering based on area, past accumulation history, steepness,
neighbour importance and (optionally) closeness to the camera. As long
as the allocated time has not expired, the most important launch site shoots
a small batch of particles, gets a new importance based on the results,
and is placed back in sorted order.
Since our sampling rate is orders of magnitude less complete than Nature's, prioritising the few samples we do have allows us to make better use of them. This ensures that even the tiniest surface is guaranteed at least a rough estimate of snow accumulation. This is a major advantage over potential (future) approaches that drop blobby particles, since small surfaces are often missed at the expense of covering large ones.
|The multi-scale approach covers individual blades of hay, even in the midst of a very large field.|