I would like to enhance my little game engine with nice looking water simulation. To start working on that I need to find a proper way to represent water in the game. Unfortunately I don't know much different representations, so I'll ask you. There is a similar question I asked some time ago. But since I hadn't formulated the issue clearly, the answer is correct but not what I was looking for.
In some games, water is just defined by a height level. For example everything under the height of zero is underwater. I saw this representation in (mostly older) games. The problem is that I'd like caves in the outdoor world which aren't flooded and different water levels for each lake and sea.
Another, more precise, representation of the occurrence of water are particles. Every water drop is stored as a point in world space. To render them, I could use techniques like metaballs so that they build a single mesh. This representation would be great for realism since I could easily calculate dynamics among them. Sadly no machine could calculate a ocean of metaballs in real time.
Are there other ways of representing water in an engine? I would like to have dynamic lakes, so defining water area by a static geometry is no option. For example if the player modifies the terrain to widen a lake, the water should fill that bay and the overall water level of that lake should slightly decrease.