This shader was made while I was experimenting and trying to create my own planar reflections in Unity3D. Although this shader is very simple, it does uses simple cubemap reflections. I decided to go with it, since it’s ment for my VR game and good performance is the key.
Shader uses one small tileable normal map texture that is used for distortion of the puddle surface and one small generic noise texture RGB (each channel with different noise) which is applied on the edges where puddle mesh gets into contact with other static mesh surfaces.
I’m calculating a “depth” of the puddle by dividing Screen Depth and world space depth of the pixel (handy “W” component of the Unity’s Screen Position). I applied an offset (by time) to distortion texture to create movement - an illusion of a movement of the surface.
right-click on image -> “Open in new tab” for full graph