There are many important factors to creating a visually resplendent video game. One could focus on foliage and weather effects. A developer could emphasize on realistic lighting through soft and hard sources. Water simulation has been only growing in support for the past few years. But while Sundog Software may focus on a few of these things, it’s main specialty is in accurately depicting a complete half of your gaming experience – namely, the sky.
Founder Frank Kane spoke to GamingBolt about SilverLining Sky and other products that Sundog Software has created to accurately depict the environments in video games. He also explained how it was possible to simulate the sky while maintaining strong performance and next gen features that we’re likely to see.
Rashid Sayed: Can you briefly describe the different products of Sundog Software and what makes each so special?
Frank Kane: Our two main products are the SilverLining Sky, 3D Cloud, and Weather SDK and the Triton Ocean SDK. Both are middleware for adding super-realistic environmental effects to a game or simulation; they combine physical realism with the performance demanded by game developers.
"Triton, and I can say this objectively, has the most advanced real-time 3D wave simulation on the market today. We simulate tens of thousands of waves simultaneously..."
SilverLining will produce skies and natural lighting for any given time and location on the planet, allowing for continuous time of day effects without needing to create a bunch of different sky boxes. It’s all just math, which saves time on the art side and also time on the rendering side. But what makes SilverLining special is its 3D cloud engine. Our clouds are all procedurally grown using a cellular automata technique, so you end up with convincing cloud shapes and cloud lighting where no two clouds look the same. And, we’ve done this while maintaining high performance – our volumetric clouds will fit into your frame budget.
Triton, and I can say this objectively, has the most advanced real-time 3D wave simulation on the market today. We simulate tens of thousands of waves simultaneously, and they follow a distribution of frequencies and amplitudes using algorithms from real oceanographic research that’s used for real maritime training. The result is the most realistic 3D water you’ll find, at a cost of just 1-4 milliseconds per frame to render an infinite ocean.
Both packages are easy to integrate and easy to use. Just tell us the time, location, and weather conditions you want, and procedural skies, 3D clouds, precipitation, and 3D water gets injected right into your scene.
Rashid Sayed: With regard to any product, how do you develop a middleware that can deliver such amazing effects while retaining high frame rates and acceptable performance?
Frank Kane: It’s just focus and perseverance really! In the case of Triton, we knew that simulating that many waves at once would take a lot of computing power, and it could only be done by leveraging the GPU or multi-core CPU’s. So, we wrote a system that analyzes the computer it’s running on, and simulates the waves using CUDA, OpenCL, Intel’s Integrated Performance Primtives, or DirectX11 Compute Shaders – whichever works best. This enables movie-quality waves with plenty of cycles left over for everything else your game does.
With SilverLining, we tried a wide variety of approaches to rendering volumetric clouds. We worked to reduce the number of draw calls and state changes to a minimum once selecting a technique, which helps a lot. We also rely on our algorithms to make the clouds look good, instead of a lot of large textures that consume bandwidth. Computers are a lot faster at math than at pushing big textures around.
"I mentioned before that we rely on the GPU to accelerate Triton’s physics, but buoyancy models are usually computed on the CPU which presents an issue."
Rashid Sayed: Ocean simulation has a ton of factors involved including lighting, coastline interaction, buoyancy and wind. Can you explain how do you go about creating ocean simulation with all these factors?
Frank Kane: Again, it’s all just math really. Our wave model uses something called the JONSWAP spectrum which tells us how to create realistic waves for any given wind conditions and swells. The physics of water lighting are complex, involving reflections, refractions, foam, spray, etc. – but it is well understood. Coastline interaction is all done within our shaders, using a height map of the sea floor to drive effects that vary with water depth. Things like ship wakes, impacts, and rotor wash are all done in a similar way.
Buoyancy was an interesting problem. I mentioned before that we rely on the GPU to accelerate Triton’s physics, but buoyancy models are usually computed on the CPU which presents an issue. All the information about how high the waves are at a given point live on your graphics card, but it’s needed on your CPU to power ship motion. We found a way to use shared memory accessible to both the CPU and GPU to solve that problem without killing performance in the process.
Rashid Sayed: What can you tell us about your skies SDK? How it is different compared to say what Simul offers?
Frank Kane: I don’t really focus on competitors, but I think we’re using a completely different approach to cloud rendering. If you tell SilverLining to create a cumulus congestus cloud layer, we actually model each cloud individually and draw them using what’s called splatting, but in an innovative way that’s very fast and fill-rate friendly. So, we can do a really good job of representing not just mostly cloudy conditions but also partly cloudy conditions with clouds that have enough detail to fly through and still look great.
We also offer a stratocumulus cloud layer that uses a GPU ray-casting technique that is probably more along the lines of what our competitors do. So, you have the choice as an end user as to the look you want to achieve.
"I hate to play favorites, but recent advances from NVidia are really exciting. Their newer cards such as the GTX 7xx series have amazing CUDA capabilities."
Rashid Sayed: A much underrated feature of any video game is the cloud and it’s no surprise as most developers implement static cloud with no physics whatsoever. How are you guys taking cloud simulation to the next level and urging developers to use realistic simulation for the same?
Frank Kane: Half of your scene is the sky! It’s important to get it right for sure. An advantage of using real 3D clouds is that they can move nicely with wind, change shape over time, and realistically react to changing lighting conditions. And, it opens up a lot of creative possibilities when you know the camera can go as high as you want and the sky will still look right.
We don’t do a ton of marketing, but rely on the quality of our product, support, and word of mouth in the community. Something’s working, since our sales almost doubled last year!
Rashid Sayed: What new features of PC technology are you most excited about, especially with regards to advancements in CPU and GPU technology? How will SilverLining and Triton Ocean take advantage of these advancements going forward?
Frank Kane: I hate to play favorites, but recent advances from NVidia are really exciting. Their newer cards such as the GTX 7xx series have amazing CUDA capabilities. I had been developing on a GTX680 and getting framerates of around 200 using Triton, but when I ran Triton for the first time on a 770 it was getting over 500 frames per second – rendering an infinite ocean with over 65,000 waves going at once! I mean, it’s always great when you can see performance increases like that just from advances in hardware.
Rashid Sayed: What are your thoughts on SteamOS and properly optimizing middleware for that platform, especially given its Linux architecture? Do you see it becoming a big deal somewhere down the line of PC gamers?
Frank Kane: I’m actually pretty excited about what’s going on with SteamOS and the SteamBox. Our products already support Linux of every flavor and the latest OpenGL spec, so we are well positioned to support developers targeting SteamOS. Assuming a good selection of titles becomes available to run on it natively, I can see it being a very compelling alternative to existing consoles for consumers.
Rashid Sayed: Triton and SilverLining not only support MacOS, Windows and Linux but you also offer support for iOS and Android. What percentage of developers these days do you believe are properly taking advantage of what Sundog has to offer, and how long before more games integrate volumetric clouds and realistic oceans?
Frank Kane: Our sales are growing in the game development world, but we know we’ve barely scratched the surface. There is a LOT of independent game developers out there. I believe any 3D game with outdoor scenes will benefit from our technology, but not every game is a 3D game with outdoor scenes – especially on mobile platforms. So to some extent, we are filling a niche.
Developers are also rightly concerned about the performance overhead of physically simulated clouds and 3D water, and may dismiss the idea out of hand out of fear of impacting their framerates too much. We make free evaluation SDK’s available on our website, so you can try it out and measure the performance for yourself without even talking to a sales guy. My hope is that as more people try it out and see that the performance cost is low, word will continue to spread that these effects can add a lot to immersion without breaking the performance budget.
"We only support consoles through our Unity assets, and so we actually rely on the Unity engine to handle any specific optimizations for those platforms."
Rashid Sayed: What are your thoughts on Nvidia’s recently announced Tegra K1 for mobiles – which is apparently capable of besting a PS3 and Xbox 360 in performance – and how do you feel it bodes for the future of middleware like Triton and SilverLining?
Frank Kane: Most people don’t realize how powerful the graphics on their phone really are at all, even prior to Tegra K1. When we first ported SilverLining to Android, I sparked it up on my Galaxy S2 at the time and was amazed to see 3D clouds humming along at over 60 frames per second.
These more recent advances, however, could allow us to also bring Triton to mobile platforms. Now that accelerating our wave physics on a mobile platform is possible, it means we could bring Triton’s water effects to the device in your pocket.
Rashid Sayed: Let’s talk about next gen consoles. What kind of next gen features have you implemented in Cloud, Sky, and Weather SDK?
Frank Kane: We only support consoles through our Unity assets, and so we actually rely on the Unity engine to handle any specific optimizations for those platforms. We haven’t had to do anything special for them. SilverLining was originally written and optimized in 2006, and so we had to make sure it performed well and looked good on hardware that would be considered very low end by today’s standards. As a result, SilverLining has scaled well to emerging platforms without any special effort – be they mobile or consoles.