We recently released version
of SilverLining, our C++ middleware for
real-time rendering of the sky and everything in it. This latest release
features improvements to cumulonimbus and stratus clouds, and smoother
transitions into space-based viewpoints as you leave Earth’s atmosphere.
SilverLining has been an individual labor of love for the past three
years, starting from a week of focused hacking in a basement. Over the
years, it has evolved into a polished, serious simulation tool used not
only in games, but in military flight simulators by most of the large
defense contractors in that business, in broadcast video applications
such as TV weather and sports broadcasts, and architectural
SilverLining provides physically-based skyboxes for any given time and
location, even outside of Earth’s atmosphere. It combines this with
accurately rendered and positioned stars, planets, and the sun and moon,
along with 3D volumetric cumulus congestus, cumulus mediocris, and
cumulonimbus clouds complete with lightning effects. Stratus, cirrus,
and cirrocumulus clouds are also provided, together with precipitation
effects for rain, sleet, wet snow, and dry snow for any simulated
Everything in SilverLining is procedural - clouds are “grown” with a
cellular automata, ensuring no two clouds look quite the same, but stay
within the rules of what a cloud of that type should look like. The
sizes and distributions of the clouds are governed by models based on
real published atmospheric research. This leads to a very simple API -
essentially, you just tell SilverLining where and when your scene is,
the desired weather conditions, and it does the rest based on physical
Real-time performance is achieved through highly optimized geometry and
vertex buffer objects to minimize state changes, offloading the math
behind the lighting of the sky to vertex programs, billboarding on the
GPU, bindless graphics, and other techniques.
As part of lighting the clouds and the sky, we compute the transmission
and scattering of sunlight and moonlight using a modified Bird Simple
Spectral Model. The
resulting energy is tone-mapped, and exposed back to the application as
ambient skylight and direct sunlight and moonlight. This lets you
realistically light your outdoor scenes for a given time and place,
consistently with the sky and clouds.
SilverLining is not a numerical engine; it handles all of the rendering
of the sky and clouds for you. Since we push and pop all state
surrounding our drawing, it interoperates with any graphics engine built
on OpenGL, DirectX 9, DirectX 10, or DirectX 11 seamlessly without
affecting the other objects in your scene. Supporting these renderers
means more work for us, but makes integration very quick for our
customers. For those who desire tighter coupling with their engine,
individual renderers for SilverLining are implemented as simple plug-in
DLL’s - new ones may be developed for your own engine to redirect all of
the actual drawing. Integration code specifically for Ogre3D,
OpenSceneGraph, and Gamebryo Lightspeed are provided, and full source
code is provided to licensed users.
A free demo, free evaluation SDK, API reference, more screenshots, and
more are available at our newly revamped
website. Thank you!
Please log in or register to post a reply.
Those clouds look nice.