Website powered by

HLSL Water Shader

This custom Unity shader simulates dynamic surface waves with lighting and normal mapping. I built it using HLSL in Unity’s ShaderLab, following and modifying techniques from beginner tutorials to understand vertex displacement and fragment shading. The wave effect is driven by a sine function applied to the world position in the vertex shader, with adjustable parameters for speed, strength, and height. In the fragment shader, a normal map is used to add lighting detail, and a lerp between two colors based on height gives the shader its animated appearance.

Material applied to spheres in Unity with varying height, tint, speed, and strength

Material applied to a plane in Unity