Saat ini saya menerapkan permainan dengan pemandangan samudra. Saya menggunakan yang berikut, sedikit tekstur abstrak:
Tekstur sebenarnya transparan, saya menambahkan warna seperti hijau untuk kejelasan.
Masalah saya sekarang adalah, bahwa saya tidak tahu bagaimana menghidupkan tekstur ini sehingga airnya terlihat bagus. Saya mencoba untuk memindahkan tekstur dengan gelombang dosa: texture.y += sin(angle)
. Tentu saja sekarang seluruh tekstur bergerak yang terlihat agak tidak realistis. Hal berikutnya yang saya coba adalah menambahkan layer lain dan menerapkan efek paralaks. Sehingga pantulan di bawah permukaan air juga akan bergerak, tetapi jauh lebih lambat. Terlihat sedikit lebih baik tetapi masih belum ... cukup bagus.
Saya pikir animasi yang paling baik adalah, jika sel-sel individu akan membesar dan berkontraksi, seperti jaring atau sepotong kain. Bayangkan jika seseorang akan sedikit menarik pada satu titik sel-sel ini dan sel tetangga akan mengembang dan sel yang saya tarik ke arah (atau mendorong ke) akan berkontraksi. Jenis seperti web pegas (?). Tapi saya tidak tahu bagaimana menerapkan sesuatu seperti ini:
- Apa model matematika untuk ini? Sesuatu dengan pegas, di mana pasukan mendorong / menarik?
- Dan jika demikian, bagaimana cara memetakan model ini ke tekstur yang diberikan? Menjaga semua kurva dan apa yang tidak ...
(Saya juga terbuka untuk berbagai ide / jawaban tentang cara menghidupkan tekstur yang diberikan. Realisme bukan intinya di sini, hanya beberapa air yang tampak seperti gerakan ...)
Solusi dari DMGregory
Saya memposting contoh libgdx di posting ini: animasi air 2d bergerigi dan tidak mulus (lihat jawaban tentang penyaringan tekstur)
_Noise
adalah [sampler tekstur yang bertuliskan] tekstur acak kecil yang blobby di atas.v2f i
adalah data yang diinterpolasi dari vertex shader - kami terutama menggunakannya untuk mendapatkan koordinat tekstur untuk piksel yang kami gambari.uv
,. Dan Anda benar tentang sisanya.Ini disebut efek kaustik, dan menghasilkan efek ini pada saat runtime cukup memakan waktu, jadi ini secara tradisional dilakukan dengan animasi frame-by-frame pre-rendered. Ada alat yang akan menghasilkan bingkai animasi kaustik untuk Anda, seperti Caustics Generator , yang memiliki versi gratis untuk penggunaan non-komersial. Ada juga beberapa yang dibuat sebelumnya yang dapat Anda beli secara signifikan lebih murah daripada versi pro dari alat yang saya sebutkan.
Perhatikan bahwa efek kaustik juga biasanya merupakan efek yang diterapkan sebagai cookie ringan pada medan bawah air, atau pada permukaan bawah air. Artinya, meletakkannya di permukaan air sambil melihat ke bawah ke dalam air itu tidak seperti biasanya.
sumber
Ini terlihat seperti tekstur yang dapat Anda hasilkan dari grafik voronoi, misalnya:
Anda dapat membuat penyesuaian kecil dan halus pada grafik dengan memindahkan titik-titiknya; menggambar ulang grafik setiap frame akan cukup mahal, jadi Anda mungkin ingin membuat animasi terlebih dahulu.
sumber
Ada metode oldschool, yang melibatkan lapisan tekstur bawah, dan dua tekstur transparan setengah untuk refleksi di atas.
Jika Anda ingin pergi jauh-jauh dan ingin air agar tidak terlihat penuh dengan gelombang yang dikloning atau aliran sup biru samish adalah tujuan yang harus dicapai.
https://steamcdn-a.akamaihd.net/apps/valve/2010/siggraph2010_vlachos_waterflow.pdf
sumber