Archives for "Uncategorized"
The SilverLining Sky, 3D Cloud, and Weather SDK has always used an extended Preetham sky model (read the 1999 SIGGRAPH paper) for coloring its procedural skies for any simulated time and location. We improved upon it by using our own, more accurate solar radiance simulation, adding perceptual tone-mapping, and adding new algorithms for handling twilight and moonlit conditions. But, it’s always been a little too pink at the horizon, and there’s never been much we could do about that.
SilverLining 2.8 fixes that by introducing a new default sky model based on the Hosek-Wilkie Sky Model, introduced in the 2012 SIGGRAPH proceedings. It’s much more detailed, and yields more realistic sky colors as a result – especially near the horizon, around the sun, and in hazy conditions.
Check out this video comparing the two models side by side using SilverLining:
One thing you’ll notice is that during the day, the Hosek-Wilkie model produces deeper blues than Preetham – perhaps a little too dark, comparing it to the view outside my window. This is probably specific to our tone mapping and gamma correction, but there are several ways to lighten up the sky if you wish. Since Hosek-Wilkie models atmospheric turbidity more accurately, you might want to increase the simulated turbidity a bit using AtmosphericConditions::SetTurbidity(). Increasing the setting for sky-box-gamma-hosek in the resources/silverlining.config file will also brighten up the sky a bit, as will increasing the simulated ground albedo with the ground-albedo setting.
If you prefer things the way they were, you can switch back to the Preetham model with a simple call to Atmosphere::SetSkyModel(PREETHAM).
As with the Preetham model, we’ve also extended the Hosek-Wilkie model with our own solar and lunar radiance models, perceptual tone-mapping, twilight simulation, and moonlight simulation.
It’s now possible to use Triton’s 3D water effects on MacOS! There are a few tricks to it – so here’s some guidance:
Triton on MacOS is distributed as obfuscated source code, so you’ll actually be building the libraries on your system from a terminal window. Before starting, you need to download and install the FFTSS library on your system. You can download FFTSS 3.0 here.
This is a Unix library – but building it on MacOS just requires one small trick. Once you’ve decompressed FFTSS, cd into its libfftss directory, and then:
Once you have a “fake” malloc.h in there, cd back up to the top directory of fftss, and do the usual:
sudo make install
Once this is done, confirm that you have a libfftss.a in your /usr/local/lib directory.
Triton is built using CMake, which is a cross-platform build tool. You can download MacOS X versions of CMake from cmake.org.
Confirm that you have a valid /usr/bin/cmake symlink after installing. Just type “cmake” in your terminal, and you should get usage information displayed if it is succesfully installed.
Download and Install Triton
You’re almost done. First download the Triton Ocean SDK installer for MacOS. You’ll end up with a install-triton-eval.run file. Now,
sudo chmod a+x ./install-triton-eval.run
Triton should now decompress into a triton-sdk-eval directory, and start compiling itself. If the compilation succeeds, you should be left with a message inviting you to test out the OpenGLSample application in the SDK that was just linked.
…and you should see Triton’s 3D water in action on your Mac!
You can study this sample application’s source code to get started on integrating Triton into your own application, and you’ll find complete HTML documentation in the docs/html directory of the SDK – or just read Triton’s API documentation online.
Optional FFT Acceleration
To make Triton even faster, you can build it against NVidia’s CUDA Toolkit and/or Intel’s Integrated Performance Primitives.
CUDA will speed up Triton on NVidia-based systems. Grab the CUDA Toolkit from NVidia’s website and install it. Then, you’ll need to rebuild Triton.
sudo cmake ./
If you encounter an error when TritonCUDA is being built, try running sudo cmake ./ a couple more times, and then sudo make again.
You may also using Intel’s Integrated Performance Primitives (IPP) to accelerate Triton on any system. IPP for MacOS is distributed as part of Intel’s C++ Composer product, so you’ll need to download an evaluation version of C++ Composer XE from Intel, and install it on your system.
Once the C++ Composer evaluation is installed, you can follow the same steps above to rebuild Triton. It should automatically find the IPP libraries and use them when linking.
In order for IPP acceleration to work at runtime, you’ll need to set the environment variable DYLD_LIBRARY_PATH to /opt/intel/ipp/lib:/opt/intel/composerxe/lib so the Intel .dylib’s can be located.
Feel free to contact us at firstname.lastname@example.org if you have trouble.
AMD has featured our Triton Ocean and 3D Water SDK in AMD’s Application Showcase! Our innovative use of OpenCL and AMD’s accelerated parallel processing math library to accelerate the simulation of over 65,000 waves at hundreds of frames per second caught their attention. We’re certainly proud to have our technology recognized by AMD, and glad they continue to provide great resources for GPU computing.
The latest version of Triton Oceans for Unity Pro / Windows is now available.
Our most-requested feature was an easy to use system for simulating buoyancy of ships on Triton’s simulated water in Unity. We listened, and here are the results:
This was easier than we thought it would be, thanks to Alex Zhdankin’s public domain buoyancy.cs script that we started from. We tied it together with Triton’s height queries, and also integrated it with Triton’s impact effects to get the spray effects in the video when the ship hits the water after falling off a large wave.
The nice thing about this buoyancy script is that it automatically carves up your ship model into “voxels” with associated buoyancy control points. As long as your ship has a valid collider and rigidbody attached to it, you can get realistic results without a lot of extra tuning. You will need to specify reasonable density and mass values, and configure enough voxel slices to represent your object – but that’s it.
I just got back from the World Aviation Training Conference and Tradeshow in Orlando, and was pleased to see our SilverLining SDK in action at a couple of booths! WATS is a conference focused on civil aviation training. This is an industry that generally has extremely strict requirements for realism, so it’s great to see our technology being welcomed into it.
My first stop was the EDM booth, where they are using SilverLining as part of a flight crew training system. Each window in their airplane mockup has a view powered by an individual low-cost computer running TinyCore Linux, and I’m rather impressed that it runs fast and looks great even on such low-end hardware. There are a lot of windows in a plane, so those savings add up fast. EDM can simulate emergencies happening at different times of day, which they are using SilverLining’s time of day effects for.
Right next to the EDM booth was Aerosim, where they were showing off a cockpit trainer augmented with SilverLining’s visuals. They had a very robust integration of SilverLining on hand that looked great, featuring all of our cloud types and time of day effects. I was happy to hear that the integration effort for them was fast and painless, and that some of these systems are in use by large airlines including Delta. It’s always rewarding to hear about how our technology is actually being used to improve training.
The civil aviation training crowd stuck me as a very friendly and welcoming bunch, and I’m happy that Sundog’s a small part of it now.
ORLANDO, Fla. (April 3, 2013) — The newest software release from Sundog Software LLC combines real oceanographic research with advanced mathematics and the latest graphics technology to make virtual oceans come alive for developers of training simulators and video games.
Frank Kane, founder of Sundog Software, said Version 2.1 of Sundog’s Triton Ocean SDK software library, used by developers worldwide to add realistic 3D water effects to games, simulations, and training applications, offers unparalleled realism in the look and action of ocean forces. And the closer you get, the better it looks.
“Triton 2.1 simulates literally tens of thousands of waves at once, and adds them together in every frame with a technique called inverse fast Fourier transform (FFT) to produce highly realistic swells, spray, and wind waves based on a real physical simulation,” Kane explained.
“We’re using real oceanographic research to power real-time water effects with a stunning level of realism. That’s as important for game developers as it is for maritime training simulators—what trainees see on the monitors is almost exactly what they will see on the ocean,” Kane said.
With Triton 2.1, game and simulation developers can add swells from distant storms and can even simulate fetch length — the effect of how far wind has traveled on the waves in the scene.
Sundog’s Triton Ocean SDK software library is already popular with video game companies and large military contractors, and has been purchased by the US Navy and the Federal Aviation Administration.
Sundog Software is a client company of the University of Central Florida Business Incubation Program in the Central Florida Research Park in East Orange County.
* * *
For more information contact:
Frank Kane, Founder, Sundog Software, LLC, 425-635-8683, email@example.com;
Carol Ann Dykes, Site Manager, UCF Business Incubation Program, 407-207-7426, firstname.lastname@example.org;
Larry Vershel or Beth Payan, Larry Vershel Communications, 407-644-4142 or LvershelCo@aol.com
About Sundog Software LLC
Founded in 2006, Sundog Software specializes in the real-time rendering of natural environments. Its SilverLining and Triton C++ and C# libraries provide OpenGL and DirectX developers with visual simulation of the sky, ocean, 3D volumetric clouds and weather effects. Sundog’s software is used worldwide by professional game developers, large military contractors and aviation companies developing flight training simulators, architectural visualization companies and broadcast video application developers. Its customers also include NASA and the FAA. To learn more, please visit http://www.sundog-soft.com.
About the UCF Business Incubation Program
Since its founding in 1999, the UCF Business Incubation Program has helped more than 300 emerging companies that cumulatively generate over $500 million in annual revenue and pay an average wage that is 45 percent above the region’s wage. With nine facilities across the greater Orlando community, the Business Incubation Program is a collaboration in economic development among the University of Central Florida, The Florida High Tech Corridor Council, Orange, Seminole, Osceola and Volusia Counties, and the cities of Orlando, Apopka, Winter Springs, Sanford, Kissimmee and St. Cloud. For more information about the program and its clients and graduates, please visit www.incubator.ucf.edu.
Our Triton Ocean SDK just got a shot in the arm of extra realism.
Explaining how is a little bit technical. Triton creates its 3D ocean scenes by simulating literally tens of thousands of waves at once, and adding them together every frame. It uses a mathematical technique called an inverse fast Fourier transform (FFT) to do this at over 100 frames per second, and we use the resources of your graphics card to accelerate those FFT calculations even further.
How realistic an ocean scene looks depends a lot on the characteristics of those thousands of individual waves. How their wavelengths, amplitudes, and directions are distributed are key. Most people use what’s called a Philips spectrum to model this for real-time rendering; it’s fast, simple, and it’s easy to find examples on how to code it up. However, it’s not the most realistic wave model out there.
Most real maritime simulations require the more sophisticated Pierson-Moskowitz model at a minimum. But, figuring out how to work it into an FFT-based water simulation isn’t easy. Some people fake it by using the Philips spectrum for the vast majority of the waves, and calculating just a handful of Pierson-Moskowitz waves that are added in to the final result. This results in discontinuities in the spectrum, and can slow down performance since you now have two different wave models to maintain.
An even better model is the JONSWAP spectrum (Joint North Sea Wave Observation Project.) This model builds upon the Pierson-Moskowitz model by simulating the effects of fetch length, which is how far the wind has blown before reaching the observer. Working that into a real-time rendering system is even more challenging.
But, we figured it out, and the results are something you need to see. Check out the video below. We’re really, really happy with how Triton’s waves look with these new spectral models – and the great part is that they have no cost at all on runtime performance due to how we implemented them.
With Triton 2.1, you can specify PIERSON_MOSKOWITZ or JONSWAP as a wave model in Ocean::Create(). To take full advantage of JONSWAP, you’ll also want to use the new WindFetch::SetFetchLength() method when setting up your wind.
We’ve also added the ability to add explicit swells in your scene. Not all waves are due to local wind conditions – sometimes, you’ll get large swells from distant storms. The new Environment::AddSwell() method lets you add in as many swells to the scene as you’d like with any height, wavelength, and direction you want. And again, we’ve cracked the nut on working these swells right into our FFT inputs, so the runtime cost is non-existent.
Also check out the new Environment::SetDouglasSeaScale() method in Triton 2.1. This allows you specify separate conditions for wind waves and swells, according to the Douglas Sea Scale. For a really crazy scene, specify a wind sea state of 9 (“Phenomenal”) and a swell of 9 (“Confused Seas”.)
We are really happy with these new capabilities in Triton 2.1. We believe we have the most accurate, and the fastest 3D ocean wave solution on the market today – and usually “accurate” and “fast” don’t go together. Triton offers the physical realism required by training and simulation, and the speed required by video games in one package.
Check out our demo video showcasing Triton 2.0′s capabilities:
Triton 2.0 introduces smoothly blended water with your coastlines and high-wavelength waves that slow and grow as they approach the shore. By supplying a floating-point height map texture via the new Triton::Environment::SetHeightMap method, Triton can use your bathymetry data to create realistic water / land transitions. This height data is also used to ensure waves and spray don’t “pop through” low-lying terrain at the shore.
Just pass us a height map texture ID and a matrix to transform world coordinates to your height map texture coordinates, and Triton does the rest. Wave displacements are also dampened as they approach the shoreline, further reducing depth precision artifacts at the water/land boundary.
We’ve been quietly rolling out these new features for the past month or so, and they’re finally polished enough to announce. With Triton 2.0, you can add rotor wash effects from rotary-wing aircraft and helicopters with just a few lines of code. The new Triton::RotorWash class allows you to simulate rotors of any diameter, speed, and orientation. These rotors will create 3D wave displacements with foam radiating out from the intersection of the rotor’s wind and the water surface, together with particle-based spray effects. The Triton::Impact class lets you simulate impacts on the water surface from bullets, torpedos, or anything else – just give it a mass, velocity, position, and orientation, and you’ll get anything from a small splash to a large effect with 3D circular waves emanating out from the impact point.
We’ve fine-tuned the appearance of our ship wakes; in addition to making the 3D Kelvin wake waves more realistic, we’ve upgraded the textures and algorithms behind the propeller backwash effect, spray, and foam effects.
And Lots More…
This is a big release containing lots of smaller fixes and enhancements; the complete release notes are available here. We’ve taken care to keep our API backwards-compatible, so updating should be easy.
Orlando, Fla. (January 29, 2013) – Sundog Software released version 2.7 of its SilverLining Sky, 3D Cloud, and Weather SDK today, rolling out several new visual effects for game and simulation developers.
“SilverLining 2.7′s most eye-catching improvement is crepuscular rays, AKA God rays” said Frank Kane, founder of Sundog Software LLC. “Beams of light emanate from the sun when it’s behind clouds, leading to visually stunning scenes with no extra effort from the developer.” This update also provides new “shadow maps” that developers may use to cast shadows from the clouds on the ground, and “environment maps” that may be used for reflecting SilverLining’s simulated sky on water and other objects. These environment maps may be used with Sundog’s Triton Ocean SDK to produce realistic sky reflections on Triton’s virtual oceans.
“It’s a big update,” continued Kane. “In addition to new ray, shadow, and reflection capabilities, we’ve expanded support for very large cloud areas to DirectX-based engines, made some fixes to our lens flare and real-time cloud growth effects, enhanced our support for customers using multiple viewports, and improved our integration examples for the Ogre engine and for C# development.”
SilverLining 2.7 is available now at http://www.sundog-soft.com . Packages are available for C++ or C# developers on Windows, Mac, Linux, or Android platforms. Integration kits are available for OpenGL, DirectX, Havok, OpenSceneGraph, Ogre, Unity, and more.
About Sundog Software LLC
Founded in 2006, Sundog Software specializes in the real-time rendering of natural environments. Its SilverLining and Triton C++ and C# libraries provide OpenGL and DirectX developers with visual simulation of the sky, ocean, 3D volumetric clouds and weather effects. Sundog’s software is used worldwide by professional game developers, large military contractors and aviation companies developing flight training simulators, architectural visualization companies and broadcast video application developers. Its customers also include NASA and the FAA.
Sundog Software is located outside of Orlando in Winter Springs, Fla. To learn more, please visit http://www.sundog-soft.com.
The numbers are in for 2012, and Sundog Software continues to post strong year-over-year growth. Gross profits are up 35%, and net income is up 72% from 2011. Many thanks to our new customers from 2012 as Sundog starts to reach an exciting inflection point. They range from simulation, to games, to visualization, and even offline rendering.
Much of that growth is attributable to the popularity of our Triton Ocean SDK, with 2012 being the first full year of its availability. We’ve also expanded our online advertising efforts, which has increased awareness of our products around the world.
We continue to invest our earnings back into product development, and the rapid pace of enhancements to SilverLining and Triton has only increased in 2012. SilverLining and Triton saw 27 updates released apiece in 2012, meaning our libraries are more stable and integrate more easily than they ever have.
2012 also saw the introduction of our support for the Unity engine, which has been growing at a good pace. Already, our products are consistently in the top 10 for Unity effect plugins in the Unity Asset Store.
We look forward to an exciting 2013 as Sundog continues to advance the state of the art for realistic real-time outdoor virtual environments.