Profile-driven retro water for URP with PSX-style rendering, buoyancy, projected caustics, position-based underwater effects, and tiled ocean LOD.Designed for the Universal Render Pipeline (URP) only.Tested with Unity 2022.3 LTS and Unity 6. The package includes support for both the legacy URP rendering path and the Render Graph workflow.Effects require:• Retro Water renderer feature• Depth Texture enabledThe included Setup & Diagnostics window can install or repair the renderer feature and enable Depth Texture for URP config.Create stylized lakes, rivers, pools, swamps, and large bounded oceans with a water system built specifically for retro-inspired URP projects. 🌊Retro Water System for URP combines a hand-written water shader with reusable profiles, CPU surface sampling, Rigidbody buoyancy, projected caustics, underwater camera effects, and a configurable tiled-ocean system.The shader is designed around the visual tricks that made older 3D games memorable: stepped animation, visible vertex movement, faceted lighting, limited color bands, texture pixelation, affine-style distortion, ordered dithering, and intentionally crunchy highlights. Every major retro effect can be reduced or disabled, allowing the same system to range from heavily stylized PSX water to cleaner low-poly or PS2-inspired water. 🎮This is more than a single water material. It is a complete, profile-driven water workflow for designers, programmers, and technical artists.🎨 Retro Surface RenderingObject-anchored or world-locked surface texture mappingTexture tiling independent from Transform scaleDirectional flow and stepped value-noise wavesAdjustable wave scale, height, height bands, and animation frame rateObject, world, or view-space vertex snappingFaceted normal blendingFull-resolution or deliberately pixelated texture samplingAffine-style texture warpingPalette reduction and color biasOrdered Bayer ditheringBanded lighting and opacityOff, Retro Glints, and Classic Specular highlight modesRim lightingShallow and deep water coloringDepth-based color blending and shoreline foamOpaque, cutout, and transparent surface modesOptional displaced shadow castingURP fog, additional lights, and shadowsThe surface texture and wave mapping are controlled independently, so stretching a mesh into a river or large lake does not have to stretch its texture.💾 Reusable Water ProfilesBuild reusable RetroWaterProfile assets that can control:Shader appearanceSurface mapping and CPU samplingCausticsUnderwater camera effectsOptional ocean generation and LOD settingsThree material workflows are supported:Runtime Instance automatically creates a private material from the profile.Baked Profile Material uses a shared material asset generated from the profile.Manual Material leaves shader properties under direct material control while the profile can still drive supporting systems.Profiles can be switched through code at runtime, making it easy to transition between calm, stormy, polluted, magical, or other water states. ⚡There are provided default starter profiles for:Calm LakeWindy LakeRiverGentle OceanRough OceanSwampPS1 Extreme🌊 Tiled Ocean and LODOptional ocean mode creates a bounded water grid from the configured ocean size and chunk size.Configurable X/Z dimensions and chunk sizeAutomatic chunk-count safety limitAdjustable near-grid resolutionMultiple mesh LOD levelsViewer-based LOD selectionConfigurable LOD distancesOptional maximum render distanceSeparate distance-based wave-detail LODFar-wave height and detail reductionContinuous world-space waves across chunksWorld-locked texture mappingCrack-free shared LOD bordersAutomatic edge-chunk sizingPer-chunk material property blocksEditor build, rebuild, clear, and diagnostics toolsNearby chunks retain detailed vertex movement while distant chunks use fewer vertices and simplified waves, helping large oceans stay practical without flattening the water near the player.⚓ Rigidbody BuoyancyAdd RetroWaterBuoyant to a Rigidbody for force-based floating behavior.Automatic collider-volume samplesCenter-of-mass, local-offset, and Transform sample modesDistributed buoyancy forcesAdjustable buoyancy strengthAdjustable resting sink depthTrue sinking when maximum lift is below object weightWave-normal and wave-velocity influenceOptional physical water currentsVertical damping and horizontal dragAngular resistance and force safety limitsSoft self-righting with a configurable local up axisEntered-water and exited-water eventsRuntime contact and buoyancy informationThe CPU sampling system evaluates the same stepped wave field used by the shader, allowing floating objects to follow the visible surface instead of an unrelated flat plane.✨ Projected CausticsProject animated caustics onto opaque surfaces beneath the water.Controls include:Assignable caustics textureColor and intensityWorld-space scaleDirection, speed, and distortionMaximum projection depthSurface fade and depth falloffStepped animation and intensity bandsMain-light, shadow, and receiver-angle influenceDirectional-light projectionMulti-surface prioritiesCaustics are rendered through the included URP Renderer Feature and reconstructed from the camera depth texture.🤿 Position-Based Underwater EffectsThe underwater state is calculated by comparing the camera position against the actual animated water surface.No trigger volume is required.This prevents common mismatches where a box volume disagrees with moving waves or finite shoreline boundaries.Effects include:Underwater color and smooth surface transitionsDistance fog and maximum visibilityDepth tintingBrightness and desaturationScreen-space distortionChromatic aberrationVignetteStepped animationColor posterizationOrdered ditheringOverlapping-surface priorities🛠️ Production-Focused Editor WorkflowCustom inspectors are included for:Water profilesWater surfacesOceansBuoyant objectsThe URP Renderer FeatureManual water materialsThe Setup & Diagnostics window can:Verify the water shaderConfirm the project uses URPInstall or repair the Renderer FeatureEnable URP Depth TextureCreate water surfaces and oceansCreate profiles and starter profilesDiagnose the selected water object🎮 Suitable ForPSX- and N64 inspired gamesRetro horrorSurvival and adventure gamesLow-poly environmentsStylized simulationsLakes, rivers, pools, swamps, coastlines, and oceansRender pipeline: Universal Render Pipeline onlyBuilt-in support: NoHDRP support: NoShader implementation: Custom hand-written URP shaderRenderer integration: ScriptableRendererFeaturePhysics: Unity Rigidbody-based buoyancyMultiple water surfaces: SupportedFinite water meshes: SupportedCamera depth: Required for projected causticsExternal assets required: NoneThird-party dependencies: None beyond Unity URPThe caustics and underwater effects require the included renderer feature to be added to the active URP Renderer Data asset.





