You're ten minutes into an open-world game and you've stopped moving. Not because the quest marker pulled you here. Because there's a lake, and the light is catching small ripples near the rocks, and foam is collecting at the base of a waterfall in a way that makes your brain go quiet for a second. You stay longer than you meant to.

None of it is real.

Not one molecule is being simulated. This is the trick at the heart of real-time water rendering, and it's a better trick than it ever gets credit for.

Modern engines don't calculate actual fluid dynamics. Doing that accurately, even for a bathtub-sized volume, would demand more processing power than exists in any consumer hardware. So they fake it instead. They fake it so well that your brain, calibrated by a few million years of watching actual water move, gets fooled completely.

Waves are just math dressed up as physics

The foundation of almost every water surface in a shipped game is something called a Gerstner wave, usually several of them layered together. A Gerstner wave is a formula that describes how a point on a surface moves in a circle as a wave passes through it: horizontally and vertically at once, which is what real ocean water actually does. Stack six or eight of these wave functions together, each with a slightly different frequency, amplitude, and direction, and you get something that reads as turbulent open water to a human viewer.

For larger bodies of water, engines step up to FFT ocean simulation. FFT stands for Fast Fourier Transform, a method borrowed from signal processing. Artists define a statistical spectrum of wave energy (essentially: how choppy should this sea be, and in what wind direction?), and the FFT converts that spectrum into a displacement map updated every frame. The surface mesh gets pushed up and down according to that map. Assassin's Creed: Black Flag used a version of this approach to generate its open Atlantic, and the result was a sailing experience that felt genuinely threatening in a storm. No fluid simulation. Just waves described as frequencies.

The mesh itself is usually a flat grid of polygons that gets denser toward the camera and sparser at the horizon, a technique called a projected grid. Spend the detail budget on what the player is actually looking at.

What makes it look wet, not just wavy

Geometry alone doesn't sell water. Light does.

A water shader handles two things at once: what the surface reflects (the sky, nearby geometry, the player's boat) and what it refracts (the distorted view of whatever's underneath). Reflection uses screen-space reflections or a pre-rendered environment cubemap. Refraction bends the underwater image by offsetting it according to the surface normal at each pixel, which is exactly what real water does when light changes speed at the air-water boundary.

Then there's Fresnel behavior, which is, honestly, doing most of the heavy lifting. It makes shallow viewing angles more reflective and steep ones more transparent. Stand at the edge of a pool and look straight down: you see the bottom. Look across it at a low angle: you see the sky. That single optical property is so visually distinctive that getting it right outperforms any amount of polygon density.

Foam and shoreline interaction get handled by flow maps: pre-baked textures that tell the water shader which direction the current runs at each point on the surface. Flow converges, foam accumulates. A river bends, the current hugs the outer bank. Artists paint these by hand, or generate them from a low-resolution fluid sim run offline and baked down to a texture. The game never runs fluid dynamics at runtime. It reads a lookup table.

Consider two developers working with an identical engine water system. One drops in the default settings and ships. The second spends two weeks hand-painting flow maps for every river bend, adjusting the foam density mask, tuning the wave spectrum separately for a shallow tropical bay and a deep northern fjord. One looks passable. The second stops players mid-session to stare at a river, which is, when you think about it, a strange and specific kind of achievement.

Have you ever actually done that? Paused a game just to watch the water? Then you've been on the receiving end of that second developer's two weeks.

What gets misunderstood about this

The common assumption is that better-looking water means more simulation. It almost never does. The leap from bad game water to great game water is almost entirely about artist time and shader craft, not computational brute force. True real-time fluid simulation exists in some physics sandboxes and engineering tools. It's expensive, limited to small volumes, and rarely looks as good as a well-tuned FFT ocean regardless.

Realism in graphics is mostly a confidence trick. Water rendered in a game is a stage flat in theater: it works because you're looking at it from the right angle, at the right moment, with the right lighting selling the illusion before your skepticism can wake up.

Water doesn't need to be computed. It needs to behave the way your memory of water tells you it should, at the exact moment you're looking at it. A much easier problem, it turns out. And the people solving it are, quietly, very good at their jobs.