OceanFlow
com.zzamjak.oceanflow is an OpenUPM Unity package. Cartoon-style 3D water for Unity URP, designed mobile-first. OceanFlowSurface (XZ grid for oceans and lakes) and OceanFlowRiver (Bezier-path ribbon for rivers) share one shader. Shore foam and depth-tinted color are derived from the scene depth difference. The surface noise is cross-faded between two half-cycle phases that are re-seeded with a random offset and rotation each cycle, so the pattern keeps being born and dissolving instead of sliding as a whole; the per-frame phase constants are computed on the CPU. Vertex Gerstner waves with analytic normals, cel-shaded highlights, and a two-channel UV flow system with 31 DOTween-compatible easings. Large oceans use a camera-following high-density patch plus a coarse far plane with a matching hole; long rivers chain several segments with continuous UV. Per-frame CPU cost is a handful of SetVector calls with zero GC.
Install this package from the OpenUPM scoped registry with the instructions on this page, or use openupm-cli to update Packages/manifest.json.
Repository: https://github.com/zzamjak-cloud/OceanFlow.
Owner: zzamjak-cloud.
Topics
Related Unity Packages
- CATSprite com.zzamjak.catsprite
- ColorReplace com.zzamjak.colorreplace
- CAT TileMapMaker com.zzamjak.tilemapmaker
- UIShining com.zzamjak.uishining
- UVPatternFlow com.zzamjak.uvpatternflow
- Water2D com.zzamjak.water2d
For registry setup problems, see Unity scoped registry troubleshooting.