а)
1. читаешь _CameraDepthTexture
2. берёшь аналогичную глубину фрагмента воды
3. находишь разницу между ними
4. юзаешь как коэф для альфы
Вот теперь стало понятно как это работает: CamerDepthводы-_CameraDepthTexture)
Но это наверное в будущем. Так как сам я вряд ли такой шейдер напишу, квалификация в этом деле у меня тоже недостаточная)
Плюс там еще какие-то команды в коде вроде нужно использовать в чем их таинственный смысл мне вообще не понятно.
http://docs.unity3d.com/Manual/SL-Ca...thTexture.html