The Triton Ocean SDK

Anonymous Aug 01, 2011 at 09:00


We’ve just released version 1.0 of the Triton Ocean SDK at Triton integrates with OpenGL, DirectX9, or DirectX11 based engines to provide real-time simulations of oceans and large bodies of water. It maintains high framerates - hundreds per second on modern hardware - by automatically detecting the GPGPU capabilities of the system and adapting to it. Triton ships with the ability to take advantage of CUDA, OpenCL, DirectX11 Compute Shaders (DirectCompute,) as well as multi-core CPU technologies such as the Intel Integrated Performance Primitives and OpenMP. By integrating GPGPU API’s with Triton’s vertex and fragment shaders, the entire simulation of thousands of waves at once can take place on the GPU from setting up the waves in the frequency domain, conducting the inverse fast Fourier transforms, and applying this data to a projected grid and applying a full Fresnel refraction and reflection shader to the final output, with foam effects.

In addition to the FFT-based ocean simulation, Triton also offers a simpler sum-of-Gerstner-waves mode that’s appropriate for shallower water simulations. It also allows the user to pass in an environmental cube map for more accurate water reflections.

Triton’s tailored for serious game applications as well, and is able to take any given wind conditions or Beaufort scale and produce matching water visuals automatically.

Maintaining system compatibility was one of the biggest challenges during the development of Triton; GPGPU API’s are still young, and much care had to be taken when selecting the API best suited to the user’s system. Integrations between the GPGPU and OpenGL / DirectX API’s were particularly challenging. We avoided runtime DLL errors by encapsulating our GPGPU code within DLL’s of their own, and dynamically loading them only after verifying that their DLL dependencies are present on the system.

This is Triton’s initial release, and we’re definitely interested in constructive feedback! A demo, free evaluation SDK, and licensing information are available from our website.

3 Replies

Please log in or register to post a reply.

TheNut 179 Aug 01, 2011 at 14:23

Awesome work Frank. With just 500K triangles, the results are great looking. Your lighting based on the time of day feels fairly realistic too, especially at night time with a (presumably) bright moon. How long did you spend on this? Do you (or will you) take advantage of DX11 hardware tessellation to push it even further?

I can see something like this being used outside of the game industry. Real time water rendering is useful in video production.

tobeythorn 101 Aug 01, 2011 at 15:18

Really stunning work! Do you have videos?

The license fees seem really fair/low compared to a lot of other libraries.

Also, I noticed a typo on your licensing page (librarys should be libraries):

Triton Pricing
Royalty-free licenses for a single application are available at an introductory price of $995 USD for binary-only Triton librarys, or $1,495 USD for an SDK including Triton’s full source code.
Purchase a license >>

sundogsoft 101 Aug 01, 2011 at 16:23

Thank you for catching that typo! It’s fixed now. We appreciate the feedback. TheNut: Triton was about a 6 month project, although the sky and clouds are powered by our other library, SilverLining, which has been evolving since 2006. It takes advantage of DX11 Compute Shaders when using the DX11 renderer, but hardware tesselation isn’t really needed with the projected grid approach currently being used. As we expand it to work well for smaller bodies of water, we may end up going into geometry shaders / hardware tesselation though.

No videos yet, but watch for them on our website soon. Meanwhile installing the demo application from our website can let you see it in action.