Real Underwater — Screen-Space Underwater Rendering for Any Water Asset OFFICIAL SALE

Real Underwater puts the camera in the water. It is a fullscreen post-effect driven by Volume profiles: tell it where the surface is, and everything below it becomes water - the colour absorbed channel by channel with distance, murk closing in, god rays raked down from the surface, caustics crawling over the floor, motes and bubbles drifting past the lens, the surface cutting the frame in half when you swim up to it. Nothing in your materials changes and nothing is spawned.


It works on top of the water you already have. Real Underwater renders the water you are in, not the water you look at, so it does not care what draws your surface: Crest, KWS, Stylized Water 3, Oceanis, a Unity plane or your own ocean. Drop one component on the water object - a plane, a box or sphere volume, a height map over a world rectangle - or hand a scripted surface a one-line delegate and it follows any asset with no compile-time dependency on it.


The waterline. The lens has height in the shader, so the surface genuinely cuts the frame: dry world above, water below, a wobbling meniscus between them that refracts what is behind it and carries a bright wet lip. Swim under and the whole frame closes over; break through and a burst of foam crosses the lens, then droplets run and shrink as it dries.


Light that behaves like light. Sunlight is refracted into the water with Snell's law, and both the god rays and the caustics are read from the same refracted sunlight - so the shafts in the water and the pools of light on the floor agree with each other and with the sun. Caustics land on upward-facing surfaces, fade with depth and with distance, and never clip to white. Look up and the world above squeezes into the 97-degree Snell's window, with the rest of the surface turned to a mirror of the water below.


Water you can grade. Beer-Lambert absorption per RGB channel over the true underwater length of every view ray: red goes first, blue survives, distance turns blue-green on its own. Turbidity adds murk, and the colour is graded by depth - bright and a little warm near the surface, cold, desaturated and dark far down. Ten presets: Ocean, Tropical Lagoon, Lake, Swimming Pool, Swamp, Harbour, Cave, Shallows, Deep Dive, Ice Water, plus a Stylized pair for cartoon-style games.


Three pipelines, one system. Built-in, URP 17 (Render Graph) and HDRP 17 (Custom Post Process) share one shader body and identical Volume parameters. The Setup wizard installs the renderer feature or custom post-process, generates the pipeline wrappers and creates the preset profiles.


In the box

Fullscreen underwater effect for Built-in, URP 17 and HDRP 17 (Unity 6000.3)

IRealWaterSurface with four providers - plane, box/sphere volume, height map, scripted delegate - and integration notes for Crest, KWS, Stylized Water 3 and Oceanis

Waterline, absorption and murk, depth grading, god rays, Snell's window, caustics, suspended matter and bubbles, refraction wobble and chromatic fringe, depth blur, surface breach and wet lens

Events for gameplay: OnSubmerged, OnSurfaced, Depth, IsUnderwater, plus a component that exposes them in the inspector

Twelve presets, generated per pipeline by the wizard; 54 controls in nine groups

Setup wizard, noise baker, sprite baker, debug views and per-layer kill switches

Two sample scenes with baked lighting (Reef, Pool)

Manual, changelog, third-party notices (none: all code and textures are original)


Requirements and notes

Unity 6000.3.21f1 or newer; URP 17.3 / HDRP 17.3 for the SRP paths (Render Graph only)

Perspective cameras; the optional motion smear keeps a per-camera history buffer

One fullscreen pass that scales with pixel count; expect several times the RTX 4090 numbers below on mid-range GPUs and use a lower resolution scale there

Screen-space by design: the effect is drawn from the frame and the depth buffer, so caustics and shafts exist where the camera can see them

One water body is active at a time - the one the camera is in, or the nearest by priority