Tôi hiện đang thực hiện một trò chơi với góc nhìn từ trên xuống của đại dương. Tôi sử dụng như sau, một kết cấu trừu tượng nhỏ:
Kết cấu thực tế là trong suốt, tôi đã thêm màu xanh lục cho rõ ràng.
Vấn đề bây giờ tôi gặp phải là, tôi không biết cách làm sống động kết cấu này để nước trông đẹp. Tôi đã cố gắng di chuyển kết cấu với một làn sóng tội lỗi : texture.y += sin(angle)
. Tất nhiên bây giờ toàn bộ kết cấu đang di chuyển trông có vẻ không thực tế. Điều tiếp theo tôi đã thử là thêm một lớp khác và thực hiện hiệu ứng thị sai. Vì vậy, những phản xạ dưới mặt nước cũng sẽ di chuyển, nhưng chậm hơn nhiều. Nó trông tốt hơn một chút nhưng vẫn không ... đủ đẹp.
Tôi nghĩ rằng hình ảnh động đẹp nhất sẽ là, nếu các ô riêng lẻ sẽ mở rộng và co lại, giống như một trang web hoặc một mảnh vải. Hãy tưởng tượng nếu ai đó kéo nhẹ ở một đỉnh của các ô này và ô lân cận sẽ mở rộng và ô tôi kéo về (hoặc đẩy tới) sẽ co lại. Kiểu như một mạng lưới lò xo (?). Nhưng tôi không biết làm thế nào để thực hiện một cái gì đó như thế này:
- Mô hình toán học cho cái này là gì? Một cái gì đó với lò xo, nơi lực đẩy / kéo?
- Và nếu vậy, làm thế nào để tôi ánh xạ mô hình này với kết cấu đã cho? Giữ tất cả các đường cong và những gì không ...
(Tôi cũng mở ra cho những ý tưởng / câu trả lời khác nhau về cách làm động các kết cấu đã cho. Chủ nghĩa hiện thực không phải là vấn đề ở đây, chỉ là một số nước trông đẹp như chuyển động ...)
Giải pháp từ DMGregory
Tôi đã đăng một ví dụ libgdx trong bài đăng này: Hoạt hình nước 2d bị lởm chởm và không mượt mà (xem câu trả lời về lọc kết cấu)