Зараз я реалізую гру з видом на океан. Я використовую наступну, трохи абстрактну текстуру:
Фактична текстура прозора, я додав зелений колір для наочності.
Зараз у мене проблема полягає в тому, що я не знаю, як оживити цю текстуру, щоб вода виглядала приємно. Я спробував перемістити текстуру з гріхом хвилі: texture.y += sin(angle)
. Звичайно, зараз вся текстура рухається, що виглядає наче нереально. Наступне, що я спробував - додати ще один шар і реалізувати ефект паралакса. Так що відбиття під поверхнею води також рухалися б, але набагато повільніше. Це виглядає трохи краще, але все ж не ... досить приємно.
Я думаю, що найкраще виглядатиме анімація, якби окремі клітинки розширювались і стискалися, на зразок павутини або шматка тканини. Уявіть собі, якби хтось трохи потягнув за собою одну вершину цих комірок, і сусідня комірка розшириться, і комірка, до якої я тягнуться до (або підштовхує), скоротиться. Вигляд, як павутина пружин (?). Але у мене немає поняття, як реалізувати щось подібне:
- Що для цього математична модель? Щось із пружинами, де сили штовхають / тягнуть?
- І якщо так, то як я віднесу цю модель до заданої текстури? Збереження всіх кривих, а що ні ...
(Я також відкритий до різних ідей / відповідей щодо того, як оживити дану текстуру. Реалізм не в цьому суть, просто якась приємна виглядає вода, як рухи ...)
Рішення від DMGregory
Я розмістив приклад libgdx в цьому дописі: 2d водна анімація нерівна і не гладка (див. Відповідь про фільтрування текстур)