MonoGame (new XNA) Tutorial: Dynamic Water Shader

Not just a water shader tutorial - but a fairly advanced water effect for 2D games (principles can apply to 2.5 or 3D too). This tutorial won't cover the dynamic water much (mostly just the effect) as it is based on work by:

Michael Hoffman's:
Splash Tutorial

The lighting effect used is also based on work by Charles Humphrey:
Crepuscular Rays

Here I will mostly discuss how I made the wave-distorted reflection and underwater caustics (as well as rim highlights/shadows) and how to send water-depth information without doing a bunch of calculations.


Since I did make a video that briefly discusses how this works and the code has a lot of comments explaining how it works, I'll simply provide that source code here:
WaterTest Source Code


>>> Click here to go to back to Game Design <<<