OpenSceneGraph remains the most popular framework our customers are using for real-time visual simulation. As such, we often receive questions about how to properly integrate our SilverLining 3D Cloud, Sky, and Weather SDK and Triton Ocean SDK together in a single project. While both SDK’s include numerous samples for OpenSceneGraph, there are a few tricks for things like reflecting SilverLining’s skies and clouds in Triton’s water, lighting Triton’s water with the sunlight and moonlight from SilverLining in a realistic manner, or getting fog on Triton’s water to match the horizon of SilverLining’s sky.
To make this simpler, we’ve put together a simple example of using both SilverLining and Triton together in the same OpenSceneGraph application:
We hope it is a useful reference! SilverLining and Triton are better together, and this code will show you how to get the best results.
This has nothing to do with computer graphics – but some of you know that before launching Sundog Software, I worked at Amazon.com and IMDb.com where I developed and managed various pieces of their recommendation and content management technologies. This involved building systems that continually analyzed behavior data from hundreds of millions of customers.
I’m sharing some of that experience in my first online course launched via Udemy, “Taming Big Data With MapReduce and Hadoop“. While I’m not giving away Amazon’s secrets, this course does teach you how to extract meaning from massive data sets using the power of distributed computing. It’s very hands-on, with over 10 real examples built using Python, MRJob, and Amazon’s Elastic MapReduce service. It includes over 5 hours of video walking you through the theory, writing and running the examples, and analyzing the results.
As an entrepreneur, I’m always trying out new things – so I’ve given this course my best effort, and I’m anxious to see how it does! Please help me out by spreading the word; as an extra incentive, the first 50 students may use coupon code NICE-ELEPHANT! to get 80% off the price of the course.
We’ve released an update to our Triton 3D Oceans for Unity asset, bringing AAA and simulation-quality 3D ocean effects to the Unity engine. Triton for Unity includes the same technology used by our Pro C++ SDK, at a price friendly to smaller projects.
New features in this update:
- Compatibility with the new Unity 5.1.1 release
- Works with Unity’s new built-in support for VR headsets such as Oculus Rift
- Smoother ship wake effects on ships that have a RigidBody and physics-based motion
- Better compatibility with custom world unit sizes
- Visual improvements to water spray effects
- More realistic dissipation of ship propeller backwash over time
- Various visual and performance improvements
I’m going to let you in on a little secret – Sundog Software’s steady revenue growth, impressive customer list, and pace of development may lead you to think it’s made up of a lot of people. It’s not – Sundog Software has always had one employee: myself. I rely on contractors and my family from time to time to help out, but Sundog Software is essentially a self-employment endeavor. It’s a pretty good gig; as long as I keep my customers happy, I get to work on my own terms.
I’d like to help others achieve what I have, and so I’ve written a book: Self-Employment: Building an Internet Business of One. It’s available on Kindle for just $2.99, or free if you subscribe to Kindle Unlimited.
In it, I describe how to transition from being a full-time corporate employee to being successfully self-employed. You don’t need to risk the livelihood of your family by making a move like this, and this book shares how I did it without betting the farm in the process. The book talks about crafting your business such that it can grow independently from your own time by focusing on product development, automation, and outsourcing. And, it talks about how to ensure your business continues to grow in the face of changing technologies, economies, and customer needs.
If you’re curious about the story of how Sundog Software came to be, and how maybe you could do something similar yourself – please give it a read! If you find it useful, I’d appreciate if you’d leave a review on Amazon.
Sometimes our customers send in screenshots or movies of their projects that just blow us away. “The Golden Age VR” produced for the Museum of the Golden Age in the Netherlands is one of them! They are using our Triton Oceans for Unity asset for an Oculus Rift-based simulation of cities in the Netherlands in the 17th century. Just look at this video (Triton shows up at 0:38):
Creator of the project, Rob Tuytel, says: “In January 2015 we started with a new expansion, this was called ‘ The Discovery of Cape Horn’ a story about the exploration of a new trading route. For this we had to find a solution to cover the water in Unity. We used lots of water shaders, but none of them had the effect we wanted, especially for the rift, you want something that looks believable.”
“Then we get in touch with Triton, it was the perfect solution for the project. The support for ships on the waves in combination with the Oculus Rift DK2 is something I had never seen before, it was even better than we could ever imagine.”
We’re proud to be a part of this project! Here are a few more images highlighting it; click through for larger versions.
Logarithmic depth buffers seem to be gaining wider adoption with our customers lately. The idea stemmed from an article by Outerra on how they preserved depth resolution at both near and far distances. Like Outerra, many of our customers need to render something like a cockpit close to the eyepoint, while at the same time rendering distant terrain hundreds of kilometers away. Conventional depth buffers cannot handle such a wide difference between your near and far clip planes, without producing artifacts from depth buffer resolution (“z-fighting.”)
While Outerra’s original article on log depth buffers covered the basic idea, it wasn’t refined until 2013 in this update. This newer article is much more explicit about what needs to go into your vertex programs in order to change how your depth buffer values are written, and it produces good results. All you have to do is add this snippet of code, plus one uniform value, into all of your vertex programs (and maybe a few of your fragment programs, too.)
A quick tip: if you are targeting NVidia hardware with your application that uses the Triton Ocean SDK, there’s a configuration setting that may provide a good-sized performance boost. Open up the file resources/Triton.config in a text editor, and look for this line:
fft-enable-sync = yes
Try setting this to “no”, and measure the results.
Originally, we introduced a hard sync in CUDA each frame because it was needed for stability. However, we’ve found that on modern drivers and modern hardware, it no longer appears to be needed – and eliminating it can get rid of your application’s bottleneck in some cases.
If you try this out and do experience stability problems, please contact us at email@example.com and let us know what driver and video card you’re using. We’d like to hear more from our customers on the impact of this setting before we turn it off by default.
Version 3.27 of the Triton Ocean SDK includes an updated integration kit for the Torque 3D game engine. We’ve ensured it builds smoothly using Triton 3.27 and the latest version of Torque (3.6.3), and we’ve updated the readme file to be more clear on the steps needed.
This allows you to use Triton’s realistic, 3D ocean effects within Torque 3D, as well as ship wakes and buoyant objects. Real maritime simulation is now possible within Torque 3D, as well as AAA-quality ocean effects. A free evaluation of Triton is available, so you can try before you buy.
You’ll need Torque, Triton, and Torque’s Project Manager application installed. Here are the steps to use the Torque 3D sample included with the Triton Ocean SDK:
This gives simulation developers using Havok access to the same atmospheric effects used worldwide by hundreds of the biggest training and simulation companies out there. 3D volumetric clouds, physically-accurate skies, and realistic weather effects are all wrapped by a simple engine plugin, complete with integration into vForge as an entity class. Even SilverLining 4’s new volumetric stratus clouds are accessible.
New in this version is support for Visual Studio 2012 projects, in addition to Visual Studio 2010. We’ve also crafted it to avoid any dependencies on the installation of the game version of Havok, to ensure it works seamlessly with Havok for Simuluation.
The SilverLining / Havok integration package is available as an easy-to-use installer, with sample projects and scenes included. You can get it now from our download page. Be sure to have at least an evaluation version of the SilverLining SDK installed first, as well as the Havok simulation engine.
As of version 3.26, the Triton Ocean SDK is now built using NVidia’s CUDA Toolkit version 6.5 instead of 6.0. CUDA is the technology Triton uses to accelerate its wave equations on NVidia graphics cards, by spreading that computation out among the thousands of cores on your GPU.
This is important for a couple of reasons:
- If you’re a licensed user of Triton and are building it from source, you’ll want to install NVidia’s CUDA Toolkit 6.5 on your build system now. The main benefit is that CUDA 6.5 will let you build Triton’s CUDA DLL under Visual Studio 2013 natively, without requiring Visual Studio 2012 to be installed as well.
- This means your end users must have driver version 340.29 or newer installed on their NVidia-based systems, in order for Triton to perform its best.
We try to maintain a balance between keeping Triton’s dependencies current, while preserving compatibility with older compilers and architectures. As such, moving up to CUDA 7.0 probably won’t happen anytime soon, as NVidia dropped support for 32-bit applications with 7.0.