Saya terjebak mengembangkan detail penting air permainan saya: Membuatnya mengalir ke bawah!
Mengingat dunia 3D yang khas dalam air yang cenderung menuju gravitasi g=(0,-1,0)
, dan memiliki permukaan air yang normal n=(x,y,z)
, bagaimana saya bisa menghitung, berdasarkan itu, vektor arah aliran air?
Sebagai contoh, perhatikan grafik yang dikerjakan dengan buruk ini (Dalam 2D, meskipun)
Update: Saya sedang mempertimbangkan permukaan air yang sangat sederhana (Hanya pesawat: Tidak ada riak, tidak ada gelombang, tidak ada tekanan, dll.). Jika salah satu dari itu perlu diterapkan, jawabannya akan tergantung pada lebih banyak faktor daripada hanya normal.
sumber
Anda tidak dapat menentukan arah aliran air dari permukaan normalnya, Anda harus menyimpan data tambahan.
Perjalanan sederhana untuk melihat sungai harus cukup untuk meyakinkan Anda tentang hal ini. Perbedaan apa pun di permukaan normal hanya mencerminkan riak di permukaan, massa air terus mengalir ke arah yang sama. Tetapi alasan yang mendasarinya adalah karena normal mendefinisikan sebuah pesawat dan Anda memerlukan vektor aliran. Vektor Anda adalah tentang bentuk permukaan, bukan pergerakan air.
sumber