Custom Water & Liquid Shaders for Games

Our video game development company runs independent projects, jointly creates games with the client and provides additional operational services. Expertise of our team allows us to cover all gaming platforms and develop an amazing product that matches the customer’s vision and players preferences.

From immersive apps to game worlds and 3D scenes

Our dedicated team for VR/AR/MR development, Unity production and 3D modeling & animation — with its own case studies and capability decks.

Visit the dedicated studio
Showing 1 of 1All 242 services
Custom Water & Liquid Shaders for Games
Complex
from 3 days to 2 weeks
Frequently Asked Questions

Our competencies

What are the stages of Game Development?

Latest works

  • image_games_mortal_motors_495_0.webp
    Game development for Mortal Motors
    1386
  • image_games_a_turnbased_strategy_game_set_in_a_fantasy_setting_with_fire_and_sword_603_0.webp
    A turn-based strategy game set in a fantasy setting, With Fire and Sword
    926
  • image_games_second_team_604_0.webp
    Game development for the company Second term
    544
  • image_games_phoenix_ii_606_0.webp
    3D animation - teaser for the game Phoenix 2.
    591

Custom Water & Liquid Shaders for Games

Water in games often looks like jelly — too smooth, without foam or realistic waves. A standard shader with parallax mapping doesn't provide the needed depth. We develop water and liquid shaders where each parameter is tuned for the target platform: from mobile to PC and consoles. Realistic water requires synchronizing multiple systems: a surface shader with Fresnel, normal map animation, foam mask, vertex displacement for waves, and a properly configured underwater effect. Each part affects performance, and balancing quality with frame budget is the core engineering challenge. Our experience: 30+ projects with water effects; we guarantee stable FPS on target devices. Investment in a custom shader pays off through optimization and unique visual identity. Get a consultation from an engineer with 7 years of experience — contact us.

Shader Parameters Affecting Performance

Key factors: number of draw calls (batching), texture resolution (normal maps, foam), use of Opaque Texture for refraction, and number of wave components in vertex displacement. For mobile platforms, the critical limits are: two scrolling normal maps (256×256, ASTC 6x6), Fresnel using NDotL approximation, foam via Depth Texture (no Opaque Texture), and one Sine wave — such a shader runs in 0.3ms on Galaxy A53.

Creating a Custom Water Shader for URP

  1. Choose the graph type: For mobile — Unlit with fake lighting via normal map, saving vertex shader invocations. For PC/console — Lit with PBR parameters.
  2. Scrolling normal maps: Two texture samples with different UV tiling and scroll directions (Time + UV offset). Use Overlay or Blend Normal to combine. Different scroll speeds eliminate pattern repetition after about 5 seconds.
  3. Fresnel effect: Fresnel Effect node + Lerp between two water colors (deep and shallow). Exponent 2–5 for a soft transition. For URP, use NDotL via Normal and View Direction — more accurate than the built-in Fresnel.
  4. Depth Fade for foam: Scene Depth minus Fragment Position gives relative depth. Smoothstep generates the foam mask near the shore. Requires Opaque Texture (additional blit pass) — for mobile, an alternative is Depth Texture.
  5. Vertex Displacement for waves: Sine node on UV + Time with different frequencies/amplitudes for 2–3 waves. Sum with different directions — Gerstner wave approximation. Displacement 0.1–0.5 units, otherwise z-fighting with objects.

Why a Custom Shader is Better for Stylized Graphics

In HDRP as of the latest stable Unity release, there is a Water System — a ready high-quality component with tessellation, caustics, and underwater. But it is not suitable for stylized (cartoon, cel-shading) graphics: vertex-animated foam is not supported, and Shader Graph customization is limited to Water surface nodes. A custom shader in ShaderGraph gives full control — from color to wave shape.

Parameter URP Custom HDRP Water System
Performance 0.3–1.0 ms (mobile) 1.5–3.0 ms (desktop)
Customization Full through ShaderGraph Limited
Underwater Effect Requires Custom Renderer Feature Built-in
Performance Comparison URP custom shader is up to 5 times faster than HDRP Water System on mobile devices — critical for maintaining 60fps on mid-range hardware.

What's Included in Water Shader Development?

  • Source shader in ShaderGraph/Amplify/HLSL with comments
  • Settings for target platforms (mobile, PC, consoles)
  • Documentation on parameters (Fresnel Exponent, wave speed, color palette)
  • Training for your team (1-2 hours online)
  • 30-day support after deployment

Case Study: Water for a Mobile Game

A mobile 3D strategy game on Unity LTS (URP Mobile). Requirement: a sea in the background, 60fps on mid-range Android. Constraint: no more than 0.5ms for the water shader. Final shader: two scrolling normal maps (256×256, ASTC), Fresnel on NDotL, foam via Depth Texture, one Sine for waves. No reflection — only cube map on Specular. Frame cost: 0.3ms on Galaxy A53. Result: stable 60fps without drops. See Unity Documentation: Optimizing Shaders for Mobile.

Timeline and Cost

Shader Type Timeline Starting Price
Basic (mobile, URP, no displacement) 2–4 days $500
Medium (PC/console, URP Lit, foam and Fresnel) 4–8 days $1,500
High-quality (HDRP or custom with tessellation) 1–2 weeks $3,500
Underwater effect + refraction 3–5 days extra $1,000

Cost is calculated individually after analyzing your scene and platform. Order a custom water shader for your game — get a consultation from an engineer with 7 years of experience in game dev.

Advanced Technical Notes

  • Refraction on mobile: Use fake refraction via normal map with UV offset on the backdrop plane — no grab pass, saving 0.5ms.
  • Vertex displacement: Using Gerstner waves in the vertex shader (sum of 2–3 sines) gives realistic waves without physics. For LOD objects, use a simplified single-wave version.
  • Foam: Depth fade mask is one of the cheapest methods, but for strong waves add a noise texture to break up the foam.