Atualmente, implemento um jogo com uma vista de cima para baixo do oceano. Eu uso o seguinte, um pouco de textura abstrata:
A textura real é transparente, eu adicionei a cor verde para maior clareza.
O problema que tenho agora é que não sei como animar essa textura para que a água pareça agradável. Tentei mover a textura com uma onda pecado texture.y += sin(angle)
. Claro que agora toda a textura está se movendo, o que parece meio irreal. A próxima coisa que tentei é adicionar outra camada e implementar um efeito de paralaxe. Para que as reflexões sob a superfície da água também se movessem, mas muito mais lentamente. Parece um pouco melhor, mas ainda não ... bom o suficiente.
Eu acho que a melhor animação seria, se as células individuais se expandissem e se contraíssem, como uma teia ou pedaço de pano. Imagine se alguém puxasse um pouco o vértice dessas células e a célula vizinha se expandisse e a célula para a qual eu puxo (ou pressiono) contrai. Como uma teia de molas (?). Mas não tenho idéia de como implementar algo assim:
- Qual é o modelo matemático para isso? Algo com molas, onde as forças empurram / puxam?
- E se sim, como mapeio esse modelo para a textura fornecida? Mantendo todas as curvas e o que não ...
(Também estou aberto a diferentes idéias / respostas sobre como animar a textura fornecida. Realismo não é o ponto aqui, apenas um pouco de água bonita como movimentos ...)
Solução de DMGregory
Publiquei um exemplo da libgdx neste post: a animação em 2D em água é irregular e não é suave (consulte a resposta sobre filtragem de textura)