Obecnie wdrażam grę z widokiem z góry na ocean. Używam następującej, trochę abstrakcyjnej tekstury:
Faktyczna tekstura jest przezroczysta, dla jasności dodałem zielony kolor.
Problem, który mam teraz, polega na tym, że nie wiem, jak ożywić tę teksturę, aby woda wyglądała ładnie. Próbowałem przesunąć teksturę z falą grzech texture.y += sin(angle)
. Oczywiście teraz cała tekstura się porusza, co wygląda trochę nierealnie. Następną rzeczą, którą próbowałem, jest dodanie kolejnej warstwy i wdrożenie efektu paralaksy. Aby odbicia pod powierzchnią wody również się poruszały, ale znacznie wolniej. Wygląda trochę lepiej, ale wciąż nie ... wystarczająco ładnie.
Myślę, że najlepiej wyglądającą animacją byłoby, gdyby pojedyncze komórki rozszerzyły się i skurczyły, coś w rodzaju sieci lub kawałka materiału. Wyobraź sobie, że ktoś lekko pociągnąłby za jeden wierzchołek tych komórek, a sąsiadująca komórka rozszerzyłaby się, a komórka, do której pociągam w kierunku (lub naciskałem), kurczyłaby się. Coś jak sieć sprężyn (?). Ale nie mam pojęcia, jak zaimplementować coś takiego:
- Jaki jest do tego model matematyczny? Coś ze sprężynami, gdzie siły pchają / ciągną?
- A jeśli tak, to jak zmapować ten model do podanej tekstury? Trzymając wszystkie krzywe, a co nie ...
(Jestem również otwarty na różne pomysły / odpowiedzi na temat animowania danej tekstury. Realizm nie jest tutaj o tyle, tylko ładnie wyglądająca woda jak ruchy ...)
Rozwiązanie z DMGregory
W tym poście zamieściłem przykład libgdx: animacja wody 2d jest postrzępiona i nie jest gładka (zobacz odpowiedź na temat filtrowania tekstur)