Real Underwater — Screen-Space Underwater Rendering for Any Water Asset
u3d
$10.45
$20.90
50%OFF
(no ratings)
Jump AssetStore
Screen-space underwater rendering for Unity 6: absorption, caustics, god rays, the half-in/half-out waterline, Snell's window, motes and a wet lens - on top of any water. Built-in + URP + HDRP.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 boxFullscreen 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 OceanisWaterline, 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 lensEvents for gameplay: OnSubmerged, OnSurfaced, Depth, IsUnderwater, plus a component that exposes them in the inspectorTwelve presets, generated per pipeline by the wizard; 54 controls in nine groupsSetup wizard, noise baker, sprite baker, debug views and per-layer kill switchesTwo sample scenes with baked lighting (Reef, Pool)Manual, changelog, third-party notices (none: all code and textures are original)Requirements and notesUnity 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 bufferOne 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 thereScreen-space by design: the effect is drawn from the frame and the depth buffer, so caustics and shafts exist where the camera can see themOne water body is active at a time - the one the camera is in, or the nearest by priorityOne fullscreen pass per pipeline over a shared HLSL body (Built-in image effect, URP Render Graph renderer feature, HDRP custom post-process) plus an optional per-camera history buffer for the motion smear; no compute shaders, no VFX Graph, no material changes, no particle systemsVolume-driven: RealUnderwaterSettings mirrored one-to-one in the URP and HDRP Volume components and a Built-in settings component with box volumes; 54 controls in nine groups (Water, Volume, Waterline, Light, Caustics, Particles, Distortion, Lens, Debug), twelve presetsWater source abstraction: IRealWaterSurface (Contains / SurfaceHeight / GetBounds / TryGetHeightMap / Priority) with plane, box-and-sphere volume, height-map and scripted providers; submersion blends over the height of the lens, and the shader offsets each ray's origin along the port so a half-submerged frame is genuinely half in and half outVolume: Beer-Lambert transmittance per channel over the underwater path length of each view ray, turbidity, depth-graded inscatter, depth darkening; the path is clipped at five extinction lengthsLight: the sun refracted with Snell's law (n = 1.333); god rays marched 4-40 steps along the view ray and sampled at the refracted entry point on the surface; caustics from the same refracted sunlight with a cosine weight from the reconstructed normal, dispersion, depth and path fade, and a band limit from the entry point's own screen footprint; Snell's window with a screen-space mirror outside the coneDetail elements are sprite billboards from one baked 512x512 owned atlas (bubbles, three grades of suspended matter, plankton, debris, foam, splash, droplets, fish silhouettes), placed by exact ray/sphere tests through eight distance-growing shells, so they parallax correctly and never slide with the cameraTwo baked textures ship: a 64-cubed RGBA noise volume and the sprite atlasZero per-frame allocations; debug views (surface and depth, water path length, history) and six per-layer kill switchesGPU cost measured in a URP development player on an RTX 4090, medians over 48 interleaved cycles: 0.078 ms (Ocean), 0.098 ms (Tropical Lagoon), 0.092 ms (Swimming Pool) and 0.050 ms (Cave) at 1920x1080; 0.026-0.063 ms at 1280x720. One fullscreen pass that scales with pixel countCode, shaders, editor tooling and documentation were written with AI assistance. No AI-generated art, textures or audio are bundled: both textures in the package are baked by the included bakers from a fixed seed - a tiling 3D noise volume and a sprite atlas - the sample scenes are built from Unity primitives and our own geometry, and their surface textures are generated by the same procedural baker.


