Gostaria de aprimorar meu pequeno mecanismo de jogo com uma simulação de água bonita. Para começar a trabalhar nisso, preciso encontrar uma maneira adequada de representar a água no jogo. Infelizmente, eu não conheço muitas representações diferentes, então vou perguntar. Há uma pergunta semelhante que fiz há algum tempo. Mas como eu não havia formulado o problema claramente, a resposta está correta, mas não o que eu estava procurando.
Em alguns jogos, a água é apenas definida por um nível de altura. Por exemplo, tudo sob a altura de zero está embaixo d'água. Eu vi essa representação em jogos (principalmente mais antigos). O problema é que eu gostaria de ter cavernas no mundo ao ar livre que não sejam inundadas e com níveis de água diferentes para cada lago e mar.
Outra representação mais precisa da ocorrência de água são partículas. Cada gota de água é armazenada como um ponto no espaço do mundo. Para renderizá-las, eu poderia usar técnicas como metaballs para que elas construíssem uma única malha. Essa representação seria ótima para realismo, pois eu poderia calcular facilmente a dinâmica entre elas. Infelizmente, nenhuma máquina conseguiu calcular um oceano de metabólitos em tempo real.
Existem outras maneiras de representar a água em um motor? Eu gostaria de ter lagos dinâmicos, portanto, definir a área da água por uma geometria estática não é uma opção. Por exemplo, se o jogador modifica o terreno para alargar um lago, a água deve preencher essa baía e o nível geral da água desse lago deve diminuir um pouco.