The largest issue that I came across when trying to create a water shader was the lack of information. I didn't quite know of a sure way to this, but I had a general idea. I searched the internet for some guidance or at least something to work off of. Soon I learned that there was little to no information relevant or current enough for what I was trying to accomplish. All information was either dated, in a different API with little explanation, or stuffed into a complicated architecture that made it seemingly impossible to unravel given the time.
However, though I had not a lot to work off of, I accomplished in finding something useful. I was at my breaking point, I even tried asking for help online, but then I was pulled back to a specific outdated tutorial. I had often been brought back and at this point, I gave in. It was entangled in some overly complicated architecture and only spoke on the reflective and refractive elements to create water. However, I dug deep and made the best out of the scraps I gathered. There may have been a better source of information I had yet to find, but simply couldn't find it. I simply worked with what I had and it turned out alright.
I was able to create a water shader that created something resembling a calm pond with subtle movement. It relied on my knowledge of 'render to texture' techniques and shader programming. I figured out how to reflect a texture generated from an object in an entirely unseen scene and pass it as the water reflective or refractive texture.
By Moises Carmona