I just implemented a nice looking feature into CopperCube
, which will very likely make it into the next free update: Nice looking realtime water surfaces:
It will be possible to create oceans, lakes and rivers with it easily. I think this will also work nicely and pretty fast in WebGL, I'm not so sure about Flash and Android yet, but I'm positive so far.
The implementation is pretty simple:
- Set a clip plane at the water surface
- Render your scene with reflection matrix into a render target
- Draw the geometry of your plane with that render target as texture
- In the pixel shader, randomly offset the texture access a bit
And if you do the texture access offsets in a nice way using a decent normal map, it looks actually like waves. This technique is not very new and doesn't need many resources, and that's why I think it will work nicely in WebGL as well. Will post a WebGL test example once I have some. But first, I have to finalize this feature in the editor first.