The SilverLining Sky, 3D Cloud, and Weather SDK received big visual improvements with version 3.009. Our CUMULUS_CONGESTUS_HI_RES cloud type looks better than ever, and we’ve also made a lot of improvements to the cloud shadow maps returned by Atmosphere::GetShadowMap().
Seeing is believing – click the image above showing SilverLining 3.009 integrated into the SkyMaxx Pro 2.0 add-on for the X-Plane flight simulator. Note the crisp cloud shadows on the terrain, and the high level of detail of the clouds. We’ve invented a hybrid cloud rendering technique that combines the photorealism of large billboard-based clouds with the 3D volumetric feel of SilverLining’s cloud engine.
You can appreciate the 3D nature of the clouds better when you fly through them, which this video (courtesy of Dave Roberts) shows nicely:
Version 2.89 of the Triton Ocean SDK is out, featuring underwater “god rays” effects (AKA shafts of light, or crepuscular rays.)
Just call Ocean::EnableGodRays(true), and animated light shafts will be visible when you’re below the water surface and looking toward the refracted sunlight direction. Our god ray effect is tied to the actual 3D wave motion on the water surface, so its animation will match the wave conditions being simulated. It also honors the underwater visibility being simulated, which will control how deep you can see the rays from. The effect is fast, and highly configurable using settings in the resources/Triton.config file. We used realistic values for underwater light scattering by default.
It’s just an extra touch of realism, as we focus more on underwater views. We also improved the specular lighting effect from the sun on the water surface when viewed from below in Triton 2.89.
Here’s a short video of it in action!
According to Develop, “The Develop 100 Tech List features profiles on the top 100 game development tech, as voted for by CTOs at the biggest studios, indies and other industry experts.”
We’re thrilled to be listed among the biggest names in game development. More and more game developers have been discovering Triton’s fast, realistic water, 3D waves, and wakes. It’s realistic enough for training with the US Navy, and fast and extensible enough for games. Triton integrates with Unity, Havok Vision, Torque3D, and any OpenGL or DirectX based engine you have source code for.
Version 2.88 of the Triton Ocean SDK is available now, with lots of improvements. One big change is that we are now building Triton against NVidia’s CUDA Toolkit version 6.0 instead of version 4.2. This fixes a bug in 4.2 that was affecting our customers who were using more than one Triton::Ocean object at once.
CUDA is NVidia’s framework for general purpose GPU computing – it’s what lets us compute tens of thousands of waves at hundreds of frames per second on NVidia-based systems. (If you’re on an AMD, Intel, or other system – don’t worry; Triton has fallbacks on those platforms that don’t require CUDA.)
However, this change has a few implications for our customers:
- CUDA acceleration requires a NVidia graphics driver that includes CUDA 6.0 support – that means at least driver version 331.62 needs to be installed on your system, and your end users’ systems, in order for CUDA to be used.
- If you are debugging with Visual Studio and have it set up to break on exceptions, you’ll end up breaking in the debugger three times at startup. This is because NVidia’s CUFFT library throws a “first chance exception” in Visual Studio when it is initialized, and we set it up three times. First chance exceptions are special Microsoft-specific exceptions that cannot be caught, so all you can do is hit “continue” each time or disable breaking on exceptions in your Visual Studio settings. NVidia has said this exception is safe to ignore.
- If you are building Triton from source code, you will need to un-install the CUDA 4.2 Toolkit and install the CUDA 6 Toolkit instead.
- CUDA 6 no longer supports Visual Studio 2005. If you’re stuck on this version of Visual Studio, CUDA acceleration won’t be available.
We haven’t measured any performance impact – positive or negative – going from CUDA 4.2 to CUDA 6.0, but it’s something we had to do in order to make Triton as stable as it can be.
If you encounter problems, please let us know. We are keeping copies of the 2.87 Triton SDK’s built with CUDA 4.2, available on request, just in case people need them.
The SilverLining Sky, 3D Cloud, and Weather SDK and the Triton Ocean SDK both render real-time environmental effects that take the simulated direct and ambient sunlight into account. But, sometimes you have your own effects that you want to integrate into our water or clouds. Perhaps you have your own scheme for handling additional dynamic light sources, or shadows, that you’d like applied to our objects.
This can be done – we’ve had customers integrate artificial light sources, forward-plus lighting, and real-time shadows into SilverLining and Triton. Both SDK’s are designed so you can do this without modifying any of our source code – your extra shader logic for your own effects just gets linked in at runtime. So, you can maintain your own effects separately from SilverLining and Triton.
At Sundog Software, we’ve always focused on our customers more than our competition. But, we are frequently asked “how are you better than your competitors?” So, I did some research on the name that seems to come up most often – Simul’s trueSKY product (formerly Simul Weather). The truth is, our SilverLining Sky, 3D Cloud, and Weather SDK is the best choice for some customers, and Simul’s TrueSky is the best choice for others. Here’s my best shot at objectively guiding you through the differences.
A lot of research went into the SilverLining Sky, 3D Cloud, and Weather SDK, and today it’s powering realistic skies in virtual reality simulators across the world. This is high-tech stuff!
But, a lot of old-school scientific work went into SilverLining. SilverLining’s sky is basically a physical simulation of how light scatters through the atmosphere, and those physics were around long before we were.
The Triton Ocean SDK has some very accurate wave models built-in already, such as JONSWAP, Pierson-Moskowitz, and Tessendorf (which is really a Phillips spectrum.) By using GPU-accelerated Fast Fourier Transforms, we’re able to simulate over 65,000 individual waves at once using physically realistic spectra for given sea states, at hundreds of frames per second.
But sometimes, you’ll have an existing wave simulation that needs to be preserved – you just want it to look better and run faster with Triton. A few of our customers have done this successfully, and here’s how they did it. Continue Reading
The SilverLining Sky, Cloud, and Weather SDK offers a lot of control over the types, positions, and quantity of clouds in your virtual environment. But, sometimes it feels like you need a degree in meteorology to know how to set up something as simple as “party cloudy” conditions in a realistic manner. This article aims to de-mystify the process of creating cloud conditions to represent more general weather conditions, such as those found in feeds from NOAA. The easiest thing is to just use our AtmosphericConditions::SetPresetConditions() method, but you may need to simulate conditions not covered by that method. Continue Reading