HDRP & URP Water Shader - Implementation Guide
A lightweight PBR water shader for unity HDRP and URP. Also contains new Shader Graph nodes to customize any shader.
A lightweight fully customizable water shader working for the new Unity render pipelines.
HDRP & URP Water Shader let you create any custom water material for oceans, lakes, rivers, ponds and more, with several features:
First of all, this water shader can work directly out of the box.
The package comes with two already setted up materials, one for a big ocean and one for a small pond (No matter the scale of your world or the shape of your water plane!), where you can start by easily editing the parameters and settings directly from the inspector.
PBR Material and realistic effects
Our water shader tries to simulate every water effect needed on a standard unity project:
You can set up foam near surface and shores, different transparency on different water depth, configurable reflectivity and distance noise as anti-tiling system.
Also, the shader fully supports reflection probes!
Custom shader graph nodes
Not fully satisfied from what our shader can do?
You can still edit your own shader using the custom shader graph nodes, that allows you to easily integrate all of the water effects on every shader you want.
Need some water buoyancy and physic?
We have an asset that is fully compatible with HDRP & URP Water Shader for that!
*Notice: To have the shader working on play mode in URP "Depth Textures" must be enabled on your camera settings.
To implement this water shader you can simply add one of the WaterPlane prefabs inside the package in your scene and customize the material properties.
To implement a custom water shader on a custom water plane (or any other model!) just create a material of type
"CorvoShaders/CorvoWaterPBR" and configure the properties for your world scale and needs.
You can also create your own water shader material using the CorvoNodes (See the Shader Graph APIs).
- Water Color: Color of the water surface.
- Foam Texture: Texture of the foam effect.
- Foam Size: Foam texture tiling size.
- Water Normalmap: Bump map for water waves normals.
- Normal Strenght: Intensity of the bump map.
- Tile Size: Water tiling size.
- Surface Transparency: Transparency on non-deep water.
- Depth Color: Color of the deep water.
- Depth Lenght: Distance limit of the water transparency.
- Water Speed: Water animation speed.
- Metallic: Metallic value f the shader.
- Smoothness: Smoothness value of the shader.
- Anti Tiling Size: Anti tiling noise size.
- Anti Tiling Intensity: Anti tiling noise intensity.
Frequently Asked Questions
"How does this work?"
Using lightweight Shader Graph functions, tries to replicate a water plane for gaming or rendering applications.
It doesn't apply any vertex editing effect, to keep it as light weight as possible, but simuates foam, water depth, water animations and more.
"Is this a lightweight shader?"
Short answer: yes.
The shader has been tested on several cheap GPUs and even on Nintendo Switch. With the right configurations it is possible to achieve 60FPS on almost any hardware.
However of course this dosn't perform as good as a standard lit shader.
"Water not showing/working how expected?"
Make sure your "Depth Texture" property on your camera (or if you prefer on your rendering pipeline asset) is set to "On".
Or contact me.