The Simul Weather SDKBy Roderick Kennedy, Simul Software Ltd. |
||||||||||||||
|
||||||||||||||
Introduction |
||||||||||||||
|
This article provides a short summary of version 1.8.0 of Simul Weather, which introduces realistic skies, clouds and weather effects into real-time applications. The main features are described below, along with details on how to obtain the SDK from Simul. One of the hardest challenges in realistic image generation has always been the sky. While generating convincing sky colours is a deceptively subtle challenge that has frustrated many developers with results that are not quite right, clouds are obviously a hard problem: fundamentally volumetric, with complex light response and realtime behaviour. Simul Weather is possibly the most advanced realtime system for sky and cloud rendering, in terms of performance and visual quality. Winner of a British Computer Society project prize, the SDK produces exceptionally convincing skies rendered at high-speeds even on desktop or portable hardware. The first multi-platform games to use Simul Weather will be released this year on PlayStation 3, XBox 360 and PC, while numerous customers are using Weather for commercial simulation, including simulation companies on four continents and a major aircraft manufacturer. Weather incorporates example rendering classes for OpenGL, DirectX, Ogre and OpenSceneGraph, so most commercial developers are able to hit the ground running with an SDK integration. | ![]() |
|||||||||||||
Volumetric Clouds |
||||||||||||||
|
Simul’s award-winning volumetric clouds are possibly the best solution to real-time cloud rendering so far. These clouds are fully volumetric, and render in around 0.5-2 milliseconds, depending on hardware and detail settings. Simul’s volumetric shaders, in contrast to sprite or impostor-based solutions, allow a complete range of cloud coverage and type, from clear-sky cumulus humilis, through to high-altitude cirrus, and cumulonimbus rain clouds. Flying through the clouds works well, making Simul Weather ideal for flight simulation applications. Weather offers numerous controls for cloud shape and detail - the cloud volume can move horizontally or vertically at no CPU cost, while recalculation for changing weather effects occurs smoothly over a number of frames. Simul's cloud rendering system is fast - much faster for medium-to-high cloud coverage than sprite-based solutions, and the user has complete control of the rendering process. The clouds can be interspersed with scenery and cast shadows on terrain and ground objects. High- and low-altitude clouds can be mixed in a single scene - hardware permitting, there is no limit to the number of layers that can be added. This makes Weather an excellent solution for instrument flight-training, as well as adding dynamic realism to ground-based scenes. |
| |||||||||||||
![]() | ||||||||||||||
| ||||||||||||||
Geographic Clouds | ||||||||||||||
|
Simul Weather’s Geographic Cloud system allows data to be seeded from an external source, such as a satellite or global/regional weather simulation. Thus clouds can approach from a specified direction, allowing programmable scenarios. For example, satellite data can be used, either from a live feed or a recorded sequence. Alternatively, procedural weather systems can be used. | ![]() |
|||||||||||||
Correct Sky Colours |
||||||||||||||
Simul’s system incorporates Rayleigh and Mie scattering, as well as other effects which are often neglected in simple sky models. Time, world location and altitude can be altered instantly. CPU usage for cloud and sky calculation is low - for simulations running at real time this is less than 0.1% of frame-time. The rendering process takes a fraction of a millisecond for a full-screen image on a standard desktop graphics card (16.7 milliseconds are required for a 60Hz frame). Simul Weather also calculates correct positions for the sun and moon given the time and location.
A key factor in achieving a physically correct sky is the haze setting - haze is not only highly variable with geography, but the extent and distribution of haze in the atmosphere has a substantial effect on sky colour even in the absence of apparent fog or pollution.
Changes in the sky are seamless - there is no wait for recalculation, and any change in atmospheric properties feeds through to the sky colours gradually, at a rate specified by the programmer (see Sky Sequencer, below). |
||||||||||||||
Distance Fading |
||||||||||||||
|
While updating the sky, Simul Weather also calculates a real-time set of distance-fade data from the same atmospheric-scattering physics. CPU load is minimal for these calculations, which can be used to apply the fade as a post-processing effect, or directly in the landscape rendering. GPU-load is small, because most of the calculation is continually pre-processed as simulation-time passes. The fades, which take account of altitude-based Rayleigh and Mie scattering, and a small absorption effect, are applied also to the clouds, and provide a seamless match between Earth and sky at the horizon. | ![]() |
|||||||||||||
Weather effects |
||||||||||||||
|
Simul's thunder and lightning system allows fast realtime generation of unique lightning bolts - several at a time - which illuminate the scene. Here, as with the sky, high-dynamic range effects come into play to allow unprecedented immersive realism. Rain can be cued from cloud density, along with mist, fog and atmospheric fading. Distance-fades depend on all atmospheric properties, and seamlessly match the sky, updating in real time for changes in haze, lighting, altitude and time of day. The overcast sky is particularly noticeable - when light is blocked by clouds, the atmosphere loses more light in the blue end of the spectrum, leading to a slightly yellow, or pink, horizon. |
![]() |
|||||||||||||
Sky Sequencer | ||||||||||||||
|
Simul’s Sky Sequencer allows the developer to specify the exact evolution of weather effects over a time period, with or without repetition. The sky sequencer's functionality is designed to be incorporated if necessary into external toolsets. By selecting and modifying keyframes on a time-line, the user can generate a sequence of sky colours - either calculated or designed - and plan set of weather changes, which can then be played back in any other program that incorporates Simul Weather. The Sky Sequencer is a tool for scenario designers and technical artists - the visibility and light quality for a mission can be planned out over part of a simulated day or a sequence of days.
| ||||||||||||||
High Dynamic Range |
||||||||||||||
|
One challenge of sky rendering is that the sky is typically either the brightest or darkest part of a scene. All Simul Weather’s output, be it for OpenGL, OpenSceneGraph, DirectX or another API, is high-dynamic-range, and in physical units of radiance and irradiance. For modern graphics cards this presents little challenge, and Simul’s sample programs clearly show how to use gamma-correction and exposure controls to produce an appropriate image. This is particularly important towards sunrise and sunset, and at night - the light-level at midnight is typically 300 times darker than daytime. However, many commercial projects do not use full HDR. In this case, it is straightforward to pre-adjust the brightness in the Simul sky, then mix it into a low-dynamic range scene. | ![]() |
|||||||||||||
Licensing | ||||||||||||||
|
Simul Weather is licensed on a per-product, per-platform basis - most simulation customers need only one license to integrate Weather with their standard framework. Supplied as a C++ API in Windows, the SDK can be evaluated free for 30 days. For further information, contact Simul on enquiries@simul.co.uk. Alternatively, an evaluation can be requested below: |
||||||||||||||
|
||||||||||||||