Share via


Custom Clouds

It is possible (and pretty easy) to add your own weather data (based on your own data sources, or just for fun) to VE3D using WorldEngine.Environment.Weather.  For example, to add some nice fluffy clouds all over:

 Host.WorldEngine.Environment.Weather.Clear();

// specify the type of clouds you want, their density (0 to 1), and their altitude in meters
CloudLayer cloud = new CloudLayer(CloudType.CumulusHumilis, 0.3f, 2000);

// specify the layer you want, its level (strictly speaking the altitude does not have to be in order
// of the layers, but it helps to keep them organized), and a timestamp for when the data is
// relevant -- for automatically generated data like this Now is sufficient.
// Wind and rain are not implemented.
WeatherLayer layer = new WeatherLayer(cloud, CloudLayerLevel.Low, DateTime.Now);

// To add weather evenly everywhere, use LatLon.Empty.  To add a specific location, specify that location.
// The closest points to the camera's position will be used to determine actual weather.
WeatherPoint weather = new WeatherPoint(LatLon.Empty, layer);
Host.WorldEngine.Environment.Weather.AddPoint(weather);

Here's a view of a two-layer cloud system:

Clouds in Seattle

You can find some sample code here.