我目前正在实施一款具有自上而下的海洋景观的游戏。我使用以下抽象纹理:
实际的纹理是透明的,为清晰起见,我添加了绿色。
我现在遇到的问题是,我不知道如何为该纹理设置动画,因此水看起来不错。我试图用正弦波移动纹理: texture.y += sin(angle)
。当然,现在整个纹理正在移动,这看起来有点不现实。我尝试的下一件事是添加另一层并实现视差效果。这样,水面下的反射也会移动,但速度要慢得多。看起来好一点,但还不够好。
我认为,如果单个单元会膨胀和收缩,则外观最好的动画就像是一块网或一块布。想象一下,如果有人稍微拉动这些单元格的一个顶点,而相邻的单元格会扩张,而我拉向(或推向)的单元格就会收缩。有点像弹簧网(?)。但是我不知道如何实现这样的事情:
- 什么是数学模型?带有弹簧的东西,力在哪里推/拉?
- 如果是这样,如何将模型映射到给定的纹理?保持所有曲线,不保持曲线...
(我也对如何为给定的纹理设置动画有不同的想法/答案。现实主义并不是这里的重点,只是一些像运动一样漂亮的水...)
DMGregory的解决方案
我在这篇文章中发布了一个libgdx示例:2d水动画呈锯齿状且不平滑(请参阅有关纹理过滤的答案)