Version 7 of the SilverLining 3D Cloud, Sky, and Weather SDK now includes an integration sample with the Rocky engine from Pelican Mapping! Pelican Mapping is the creator of the popular osgEarth open source package; you can think of Rocky as its Vulkan successor, built on top of VulkanSceneGraph. Like osgEarth, Rocky simulates the entire Earth and allows you to zoom in from space all the way down to the ground, anywhere on the planet.
SilverLining complements Rocky by adding our simulation-grade skies and weather effects to Rocky’s terrain. From space, SilverLining’s simulation of sunlight and moonlight illuminate the Earth, and our ephemeris model drives the positioning of the sun, moon, stars, and planets. As you approach the ground, the sky will brighten up if it’s daytime, featuring our physical simulation of atmospheric scattering in the sky, and whatever types of cloud cover you have specified.
You’ll find sample code for Rocky inside the “rocky example” directory of the SilverLining SDK’s sample code, in SilverLining 7.0 or newer. It is a modified “rdemo” application from Rocky, incorporating the SilverLiningGroup and SilverLiningCommand classes from our VulkanSceneGraph sample code, and extending those classes to work with Rocky’s geocentric, WGS84 Earth model. It integrates SilverLining’s sun, moon, and ambient light with Rocky’s terrain lighting, and synchronizes the latitude, longitude, altitude, and orientation of Rocky’s viewpoint with SilverLining automatically. Please refer to the README file within the integration sample for more details on how it works, and how to extend it further to meet your own requirements.
Bear in mind Rocky is still in the early stages of development; there are likely to be changes to its API that may affect this integration over time. But this should continue to serve as a useful reference and proof of concept for developers looking to move to Vulkan. If your simulation requires whole-Earth terrain as well as accurate sky and weather effects, that is now possible under Vulkan!