Me gustaría mejorar mi pequeño motor de juego con una bonita simulación de agua. Para comenzar a trabajar en eso, necesito encontrar una forma adecuada de representar el agua en el juego. Desafortunadamente no conozco muchas representaciones diferentes, así que te preguntaré. Hay una pregunta similar que hice hace algún tiempo. Pero como no había formulado el problema con claridad, la respuesta es correcta, pero no la que estaba buscando.
En algunos juegos, el agua solo se define por un nivel de altura. Por ejemplo, todo bajo la altura de cero está bajo el agua. Vi esta representación en juegos (en su mayoría más antiguos). El problema es que me gustaría tener cuevas en el mundo al aire libre que no estén inundadas y con diferentes niveles de agua para cada lago y mar.
Otra representación más precisa de la presencia de agua son las partículas. Cada gota de agua se almacena como un punto en el espacio mundial. Para renderizarlos, podría usar técnicas como metaballs para que construyan una sola malla. Esta representación sería genial para el realismo, ya que podría calcular fácilmente la dinámica entre ellos. Lamentablemente, ninguna máquina puede calcular un océano de metabolas en tiempo real.
¿Hay otras formas de representar el agua en un motor? Me gustaría tener lagos dinámicos, por lo que definir el área del agua mediante una geometría estática no es una opción. Por ejemplo, si el jugador modifica el terreno para ensanchar un lago, el agua debería llenar esa bahía y el nivel general de agua de ese lago debería disminuir ligeramente.