Posted by Frank Kane on 4th July 2013

Ship Wakes in Triton 2.3: Kelvin wakes, bow wakes, propeller wash, and more.

Does your game or simulation include ships, boats, or other objects that disturb the water surface? If so, you know realistic wake and spray effects are difficult to produce – especially when your ships aren’t moving in a straight line, and when your water includes 3D waves.

The Triton Ocean SDK 2.3 includes a completely overhauled system for ship wakes, accurately simulating 3D Kelvin wakes, propeller wash, bow wake, spray, and foam effects for boats moving on arbitrary paths in any wave conditions. Since we apply these effects in the same rendering pass as the water waves, it’s fast too. Check out this video showcasing Triton’s new wake effects:

3D Kelvin Wakes

3D ship wake effects: Kelvin wakes, propeller washKelvin wakes are the V-shaped wakes behind a moving boat; they originate from the bow and stern of the ship, and are always at a 38.94 degree angle. In reality, it’s made up of the interference patterns of the many circular waves radiating out from the bow and stern as the boat travels. There’s a whole science to understanding how Kelvin wakes work, but Triton manages it for you. Both the bow wave and stern wave produce realistic water displacements, lighting, and foam behind your ships automatically. We don’t just attach a static displacement or normal map to your ship; individual waves are simulated, leading to realistic waves on ships moving on any arbitrary, curved path.

The waves from Kelvin wakes are added on top of the wind waves and swells in Triton, producing realistic results in any seas from calm to rough. And, since our wake effects are applied in the same vertex program as everything else for the water, you can maintain frame rates in the hundreds with these effects.

Propeller Wash / Turbulent Wake

Propeller wash, or turbulent wakes, behind a ship in Triton 2.3.Another aspect of boat wakes is the turbulent wake, or propeller backwash, behind a moving ship. This is the foamy disturbance created by a ship’s propellers (or “screws” in nautical terms.) We’ve implemented the available research on how prop wash expands and dissipates behind a moving ship, so it’s not just realistic-looking, it can actually be used in training applications where you estimate the size and speed of a ship based on its wake. The turbulent wake is often the most visible sign of a ship from the air, and it is an important cue for ship identification.

Like our Kelvin wakes, Triton’s turbulent wakes handle any path your ship might take. If your ship’s making a tight turn, the propeller wash behind it will reflect that curve. We automatically emit more prop wash segments when a ship is turning to ensure smooth looking curves, and we maintain performance by applying level of detail effects as the camera moves away from the ship.

Most games and simulations implement prop wash as a “decal texture”, or a flat 2D texture overlayed on the water surface. Since Triton produces 3D waves, this approach wouldn’t look right in high seas. Instead, Triton employs novel shader techniques to apply the propeller wash effect on top of Triton’s moving 3D ocean wave surface, all at the same time that the ocean waves are being drawn.

Accurate Bow Waves

The bow wake is accurately modeled in Triton 2.3.When the camera’s close to the ship, accurate bow wake effects are crucial for a convincing scene. They are even more important in training applications, since the height of the bow wave can be used to estimate the speed of a ship from a periscope. We’ve studied the existing literature on how the size and position of bow wakes vary as a function of the velocity and draft of a ship, and baked it into Triton’s wake system. As your ships’ velocities increase, the height of the bow wave will be accurate. We also increase the intensity of spray effects at the bow as the ship’s speed increases, providing an additional visual cue as to how fast the ship is moving.

We also generate spray along the hull of the ship, which also becomes more prevalent as the ship’s speed increases. It adds some additional realism and visual interest to the scene.

Geocentric Support

An additional challenge in implementing Triton’s wakes was supporting round-Earth coordinate systems. Many applications, especially in training and simulation, cover the entire planet and use large coordinates relative to the center of the Earth. These are known as geocentric coordinates, or Earth-centered-Earth-fixed (ECEF) coordinate systems. These often result in jittery motion due to loss of numerical precision, since GPU’s generally operate in single-precision floating point coordinates.

With Triton 2.3, we’ve solved this problem to give you stable wakes, waves, and propeller wash even in geocentric coordinate system. All coordinates in our shaders are relative to the camera position, having subtracted off the camera position on the CPU in double precision prior to handing positions off to the GPU.

Learn More, and Give It a Try

The Triton Ocean SDK does much more than just ship wakes – it provides the fastest, most realistic simulation of water you’ll find, with reflections, refractions, coastal effects, intersections, and more. Check out the Triton Ocean SDK product page to learn more.

Sundog Software is different from most other middleware companies – we offer free, time-limited evaluation versions of our software right on our website. You don’t need to talk to a salesman or even give us your contact information. Head to our download page to try out the latest version of the Triton Ocean SDK, or download our latest demo. Triton integrates with any OpenGL or DirectX based application on Windows, Linux, or MacOS X, and we have integrations available for the Unity, Havok Vision, OpenSceneGraph, and Ogre engines.