February 2025

Stylised ocean shader

A drag-and-drop stylised ocean with any number of Gerstner waves. Optimised for real time and highly customisable.

A high angle view over a stylised sandy cove, with teal water shading darker where it deepens, pale shallows around the rocks, a stone arch standing in the water and trees casting shadows across the beach

Breakdowns

3 deep dives into the parts I built.

  1. A grey test plane with an irregular, rolling surface built from six overlapping Gerstner waves
    01Gerstner waves in HLSLI implemented a custom HLSL Gerstner-wave shader with artist-friendly parameter tuning.
  2. The whole ocean from high above in wireframe, a dense mesh grid around the island stepping down to coarser tiles toward the edges
    02Performance and LODsI kept the scene performant in real time with material and mesh LODs that move with the camera.
  3. A curved sandy shoreline at golden hour, with a soft band of pale foam along the water's edge fading out into the sea
    03Making the ocean's detailsI made the ocean look stylised and easily customisable with foam, caustics and wet sand.

Overview

This was my Year 2 specialism module at Escape Studios. It involved 5 weeks of self-directed research into a technical area of my choice. I’d been playing Dredge (Black Salt Games, 2024) at the time, and it made me want to build a large-scale, real-time stylised ocean shader that artists could author themselves. Ghislain Girardot’s deep dive into his own animated stylised ocean in Unreal (Girardot, 2022) was my main technical reference.

The brief I set myself was a drag-and-drop ocean that an artist could customise without touching the graph, and that stayed performant in real time. I skipped interactivity to fit the time, so there’s no buoyancy or physics. The result is one blueprint, with intuitive artist controls for the look and feel of the ocean.

Top-down view of the cove.
Overhead view of the shallows.

Set dressing

To give the scene some scale and sell the image, I used the demo scene assets from Sandvector Studios’ Cartoon Water Shader pack (Sandvector Studios, 2017), which I got as one of Fab’s free monthly assets. They make up everything around the ocean, including the rocks, ruins, landscape and trees.

A jetty and ruined stones silhouetted against a red sunset over the sea, with a lens flare in the foreground
Set dressing in progress, the day before hand-in.

Reflections

Being my first specialism module, this was the first time I had the freedom to really explore something I wanted to. I think for the timeframe and my skill level it was a success. It was easily the most complex shader system I’d built at the time, and I was able to scope well, so I didn’t need to compromise on my vision.

If I were to come back to this project, there would be a lot of things I’d do differently. Firstly, a more intuitive dynamic mesh system would give me much more efficient triangle usage. I’d also add particles and drive the foam from a runtime virtual texture. While definitely overkill for this, exploring FFT-wave simulation would be a fun challenge. These additions would also provide a tougher profiling challenge.

Sources

  • Black Salt Games (2024). DREDGE. [online] Available at: https://www.dredge.game/ [Accessed 21 Jan. 2025].

    My inspiration to make the stylised ocean shader in my project brief.

  • Girardot, G. (2022). A deep dive into my process of creating this animated stylized ocean in UE. [online] YouTube. Available at: https://www.youtube.com/watch?v=UWGwq-_w08c [Accessed 1 Oct. 2026].

    My main technical reference for the project, from the Gerstner waves to how the material is put together in Unreal.

  • Noclip (2024). The Design of Dredge - Noclip Documentary. [online] YouTube. Available at: https://www.youtube.com/watch?v=yXQipk_mBAo [Accessed 21 Jan. 2025].

    Research for the project brief, behind-the-scenes development footage.

  • Sandvector Studios (2017). Cartoon Water Shader. [online] Fab. Available at: https://www.fab.com/listings/23869931-3e46-4c42-b541-9f6057f12d13 [Accessed 1 Oct. 2026].

    Demo scene assets used for the set dressing around the ocean.