Volumetric clouds with GPU ray-casting in SilverLining 2.0

Anonymous Oct 12, 2010 at 14:00


We’ve released version 2.0 of SilverLining, our C++ library for real-time, physically-based rendering of the sky, 3D volumetric clouds, and weather effects. This new release features a new type of cloud - stratocumulus - rendered used GPU ray-casting; this new cloud type is featured in the images above.

With GPU ray-casting, truly 3D, volumetric clouds of very high densities become possible, with per-pixel lighting. A fragment program casts rays from the camera through each fragment of the cloud layer’s bounding volume, compositing together color, opacity, and lighting information as it passes through the clouds. The clouds themselves are stored as 3D textures, with an ancillary 3D noise texture used to provide fractal detail.

These new cloud types augment SilverLining’s existing cumulus cloud types (cumulus congestus, cumulus mediocris, and cumulonimbus) which render the underlying volume data using billboard splatting. Splatted clouds are featured in the SilverLining Demo and our Gallery.

We provide sample integration code for OpenGL 1.4, OpenGL 3.2, DirectX 9, DirectX 10, and DirectX 11, as well as for the Ogre, OpenSceneGraph, SceniX, and Carmenta engines. Visit Sundog’s website for a free evaluation SDK and more information, and feedback is welcome!

2 Replies

Please log in or register to post a reply.

rouncer 104 Oct 14, 2010 at 05:33

great! you really have to see it in motion to see how good it really is I find tho.

TheNut 179 Oct 14, 2010 at 10:21

Nice work Frank. It feels neat when you flood the scene with clouds, it gives a whole new perspective. On the performance side, I did notice a drop in FPS when I decorated the skies like that. Have you incorporated any performance enhancements yet? For instance, do you stop traversing through the volume once the opacity for the pixel reaches 1.0? I think (out of ignorance) that if one cloud fills up my screen and runs well, I figure a sky of them should perform at almost the same speeds (especially if you can’t see them).

One last thing. You say the clouds are stored as 3d textures, but I presume they are procedurally generated? I noticed some clouds looked the same and that statement makes me wonder now.