Let it snow, let it snow, let it snow
- Dec 3, 2018
- Systems Tool Kit (STK)
Many years ago, when AGI first began making animations for NORAD Tracks Santa, I realized something was missing from our scenarios, snow. The snow feature may be implemented one day, but until then I can tell you how to do it yourself.
To make snow, retrieve the files from SnowModels.zip file and follow the instructions provided below.
As a prerequisite, you will need an STK scenario with at least one object where you want it to snow. This could be an aircraft, a ship or a ground object. Make a copy of that object and use the Snow.mdl model. Select this as your view-from / view-to object, select the articulation script, SnowArticulation.acma, and press play. Enjoy the snow.
Using this model requires three files. The model geometry itself (Snow.mdl), a texture that wraps around this geometry (snowPic.png) and an articulation script used in the scenario to make the snow “fall” (SnowArticulation.acma). You may need to change the filename and/or file extension to match the name of your object and object type in versions prior to STK 11.5. The model geometry consists of two cylinders, one inside the other. The same texture is applied to each cylinder. The articulation script consists of a single, repeating command that makes the cylinders rotate 360 degrees in opposite directions.
This is an example of an articulation script that creates blowing snow.
NEW_ARTICULATION STARTTIME 0 [Starting time of transformation] DURATION 999999999 [Total scenario time in epoch seconds] DEADBANDDURATION 0.000000 [not used - always zero] ACCELDURATION 0.000000 [not used - always zero] DECELDURATION 0.000000 [not used - always zero] DUTYCYCLEDELTA 0.000000 [not used - always zero] PERIOD 180 [increase to go slower, decrease to go faster] ARTICULATION Rotate [model specific] TRANSFORMATION snowfall [model specific] STARTVALUE -360 [starting point of transformation] ENDVALUE 360 [stopping point of transformation]
This model comes with a few limitations. The camera needs to be positioned in just the right spot to keep the snow looking like snow, and not two cylinders. If the camera gets too close to one of the cylinders, some flakes will reveal their true nature as square pixels. If it’s too far away, the flakes get too small, and start to look like noise.
On the other hand, MoSnow.mdl overcomes most of these limitations because it is a true volume. It doesn’t use a texture map because the flakes are particles; single white pixels that are always the same size. You’ll still need an articulation script to make it spin, but positioning the camera is not nearly as critical.