Dovetail Games recently released Train Simulator 2015, which integrates the SilverLining 3D Cloud, Sky, and Weather SDK to power their environmental effects. Our technology is powering their dynamic skies and time of day effects, atmospheric effects, 3D clouds, and precipitation!
Of course we had to go look at the feedback on Steam and the various forums – and we’re pleased with user reactions. Most users report these new effects have little to no impact on their framerate (similar feedback to X-Plane users flying with our clouds,) and there are lots of customers posting screenshots featuring Train Simulator’s new weather capabilities.
We worked closely with the developers at Dovetail to provide quick support on integration issues they encountered, and all in all I think the end result worked out quite nicely – we both ended up with better products in the end. We wish them continued success!
These sample applications are built using Ogre’s tutorial framework (included with our sample code), and illustrate stand-alone applications that feature our fast, simulation-quality environmental effects.
To get started, install an evaluation SDK for SilverLining or Triton on your system. You’ll see a folder installed for sample or example code, and in there you’ll find Ogre samples for Ogre versions 1.8 and 1.9. Set the OGRE_HOME environment variable to point to your Ogre SDK installation, and open up the included Visual Studio 2010 solution file. To get up and running quickly, just set your debugger properties to start you in the appropriate bin folder of the Ogre SDK as your working directory, so the necessary Ogre DLL dependencies will be found. If you’re using Ogre’s OpenGL renderer, you’ll need to add a line to Ogre’s resources.cfg or resources_d.cfg file as well, as described in the sample’s README.txt file. Build and run, and you should see our 3D water effects, or 3D clouds and dynamic skybox, rendered within Ogre with the familiar Ogre head.
If you’re wondering how our Triton Ocean SDK compares to Ogre’s Hydrax water module, we’ve put together a feature comparison to help you out. Triton is free to try however, so please compare for yourself. SilverLining is comparable to Ogre’s SkyX, but offers a wider range of cloud rendering techniques and many features important to simulation and training applications. Again, it’s free to try, so please compare for yourself within your own application.
We just heard from a customer who successfully integrated our Triton Ocean SDK with the Vega Prime engine – although we’ve heard rumors of others doing this before, this is the first time we’ve actually seen it work. (Vega Prime is a trademark of Presagis.)
Turns out it’s pretty straightforward – you just create a subclass of vrGeometry, override its Draw method. In there, you can get the view and projection matrices from the context’s channel, as pass them into Triton (be sure to convert these into double-precision values first!) Then, call Ocean::Draw(), and you’ve got a basic ocean up and running. Of course you need to instantiate and initialize a ResourceLoader, Environment, and Ocean object at startup as well, but there’s nothing special about that.
Integration of our SilverLining Sky, 3D Cloud, and Weather engine would work in a similar manner, I would imagine.
If you’re looking for a lower-cost alternative to Vega Prime Marine with a comparable feature set, have a look at Triton! It will mean a little more engineering work compared to a drop-in solution such as Vega Prime Marine, but the savings may be well worth it.
We recently loaded up our SilverLining asset for the Unity engine in the new Unity 5 (which is still in beta.) We wanted to make sure it still works in Unity 5 (it does,) and also explore some of the much-touted global illumination features in Unity 5 and see how SilverLining might integrate with them.
It turns out that a lot of what Unity is called “global illumination” is stuff SilverLining has supported from the start, even in Unity 4. And it continues to work just fine in Unity 5.
Here’s a video showing a complete time of day cycle from SilverLining within Unity – you might want to skip to the sunrise at the end, as that’s the most interesting.
If you read up on what Unity is calling “global illumination” in Unity 5, it consists of a few things:
Dynamic diffuse and ambient light depending on the time of day and weather conditions. Well, as you can see in the video above, we already dynamically control a light source that SilverLining provides, and its color and direction will change realistically at sunrise, sunset, and at night. It’s all just automatic, already.
Light probes and reflection probes. Really this boils down to having an environment map created (a “cube map”) that represents the sky, which can be used to provide reflection and refraction information while rendering. Again, SilverLining has provided this from day one, and it’s how you can hook SilverLining up to our Triton Ocean package, for example, as a source of reflections.
So – if you want some of the global illumination features promised in Unity 5 today with Unity 4, check out SilverLining! And, it’ll continue to work just fine in Unity 5 as well.
We’ll credit your screenshot, leading to a little bit of free publicity for your company and product (for example, this image is from our friends at VT MÄK). Plus, often we’ll spot something when looking at your sky and water, and can offer some simple tips to make it look even better.
If you’re willing to share, please email us some shots and they could end up on our website! (make sure you’re authorized to share your images publicly first, of course.)
We’ve updated our white paper titled “Immersive, Low-Cost Training with Environmental Effect SDK’s“, available for free download! This white paper covers the current state of the art in real-time visual simulation of oceans, skies, natural lighting, and 3D volumetric clouds. We’ve tried to just present the latest research and capabilities of technology on the market – it’s not just a sales pitch for Silverlining and Triton; we also acknowledge our competitors in this paper. Its objective is to keep project managers informed of industry’s current capabilities in these areas, and to raise awareness that these capabilities may be had at low-cost and integrated into free, open source scene graphs and engines. Movie-quality synthetic natural environments may be had in real-time simulation without incurring large software licensing costs. We hope you find it informative!
At Sundog Software, we try to focus on what our customers need instead of the competition. But, we’re often asked how we’re better than other 3D ocean technologies out there. OpenSceneGraph users are usually comparing the Triton Ocean SDK to osgOcean, Ogre users to Hydrax, and game developers are looking at WaveWorks (WaveWorks is a trademark of NVidia). In many cases, these competing packages are free or bundled with other tools, so why pay a modest licensing fee for Triton?
Do you have projects planned for 2015 that need realistic 3D water, 3D clouds, weather effects, or dynamic skies? Maybe you’d even like to quickly upgrade an existing game or simulator with better environmental effects. Now might be the time to ask for purchase approval for new SilverLining and Triton licenses from your company.
Not everyone knows that companies often have unused funds in their annual budgets at the end of the year, and in some cases, it’s “use it or lose it.” It’s possible your organization has money set aside for software, and as we enter Q4 it’s often easier to get approval to use it. Here at Sundog Software, we often see a big surge of sales in Q4 for this reason.
Another good idea is to renew your support & maintenance plan for existing licenses. It’s only $1000 for 12 months of updates – and both SilverLining and Triton have seen some huge advances in performance and visual quality that you may have been missing out on.
So, if you’ve been putting off asking for purchase approval for one of our licenses – ask your manager or accounting folks again. You might get a pleasant surprise! Contact email@example.com or visit our purchase page for more information.
We are too! I/ITSEC is the biggest training and simulation conference in the US, happening from December 1-4 here in Orlando, Florida.
Every year we meet many of our customers face-to-face while at I/ITSEC. If you’d like to arrange a meeting, let me know and we can set aside a time. It’s never too soon. I look forward to seeing many of you there!
Some engines will render their scenes internally in linear color space, where gamma correction is removed from all source imagery (using sRGB textures for example.) A good write-up describing how this can improve illumination is “The Importance of Being Linear” in GPU Gems 3.
If your engine works this way, and you want to use the SilverLining Sky, 3D Cloud, and Weather SDK or the Triton Ocean SDK while rendering in linear color space, you’ll find that the sky and ocean appear too bright. By default, SilverLining and Triton produce gamma-corrected images intended to be displayed on a monitor as-is. If your engine applies gamma correction later in the pipeline, the sky and ocean end up getting gamma corrected twice as a result.
There is a simple solution. Triton offers the Triton::Ocean::SetLinearColorSpace() method, which may be used to render the ocean in the darker linear color space instead. SilverLining offers even finer control with the SilverLining::Atmosphere::SetGamma() method – by default SilverLining assumes a gamma value of 2.2, but by setting the gamma to 1.0 you’ll get results in linear color space instead.
If you are using the Unity Pro engine, it also has an option for linear color space rendering. The next releases of SilverLining and Triton for Unity will automatically handle this, but for now you may refer to this and this for tips on using our products with linear color space in Unity.
One finer point: whether you’re in linear or gamma color space, you’ll want to make sure any reflection textures given to Triton are in gamma space. For example, if you are using SilverLining to produce an environmental cube map for Triton, make sure
Atmosphere::SetGamma(2.2) is called prior to calling
Atmosphere::GetEnvironmentMap(). If you cannot easily generate reflection textures in gamma space, contact us for guidance on modifying Triton’s shaders to only correct the non-reflection components of the water.