Pada titik ini platform dan bahasa pemrograman tidak masalah saya hanya ingin tahu apakah ada sesuatu di luar sana untuk ini. Bantuan apa pun dihargai.
Pada titik ini platform dan bahasa pemrograman tidak masalah saya hanya ingin tahu apakah ada sesuatu di luar sana untuk ini. Bantuan apa pun dihargai.
Jawaban:
Lihatlah apa yang Q-Games gunakan untuk Pixeljunk Shooter. Ini adalah game 2d dengan fisika fluida yang cukup terlibat. Saya tidak yakin apakah mereka menggunakan mesin fisika buatan sendiri atau middleware, tetapi informasinya mungkin ada di suatu tempat.
Yah saya belum melihat ke dalam ini, tetapi saya tahu pasti bahwa hampir semua mesin fisika dapat meniru gagasan itu. Box2D, dll.
Pada dasarnya memiliki partikel memantul di sekitar, dari permukaan dan satu sama lain (lebih cepat untuk gas) tetapi juga memberi mereka efek seperti gravitasi konstan (cairan semua akan memiliki yang sama, tetapi beberapa gas Anda mungkin ingin naik perlahan).
Jika Anda menghubungkan partikel luar Anda akan mendapatkan bentuk poligonal yang mewakili massa
ATAU
jika Anda hanya menggambar piksel atau grafik partikel di atas setiap partikel, Anda bisa mendapatkan efek cloud untuk massa.
Satu-satunya perpustakaan yang bisa saya temukan yang khusus menangani cairan adalah Fluidic . Itu cukup alpha dan hanya memiliki satu rilis, meskipun. Perpustakaan fisika Bullet mendukung 'smoothed-particle hydrodynamics', teknik yang digunakan untuk memodelkan cairan. Meskipun pustaka diarahkan 3D, Anda bisa menerapkan batasan pada satu sumbu untuk membuatnya bekerja dalam 2D.
Rekomendasi saya adalah, seperti yang telah saya sebutkan di beberapa komentar pada jawaban lain, untuk menggunakan mesin fisika standar seperti Box2D atau Chipmunk dan menggunakan sejumlah lingkaran untuk memodelkan air (dengan gravitasi) atau gas (tanpa gravitasi) dan menggabungkan ini bersama-sama menjadi satu badan air atau gas. Anda dapat menerapkan beberapa kendala pada masing-masing tubuh untuk membuatnya 'rumpun' bersama sehingga Anda dapat mensimulasikan viskositas. Lihat video ini untuk melihat bagaimana masing-masing tubuh (dimodelkan sebagai kotak dalam video) bekerja bersama. Namun, perhatikan teknik yang digunakan dalam video ini tidak sama dengan yang disebutkan dalam paragraf ini. Anda dapat menggunakan video untuk merasakan bagaimana lingkaran berinteraksi satu sama lain dan mencoba untuk meniru ini dengan kendala yang ada di perpustakaan fisika yang digunakan.
Bagian yang menarik datang ketika Anda ingin menggabungkan beberapa lingkaran ke badan air. Solusi paling mudah yang bisa saya buat adalah menggambar setiap lingkaran sebagai sebuah metaball sehingga mereka muncul sebagai bagian dari tubuh yang lebih besar. Anda dapat menemukan matematika dan beberapa kode contoh di balik badan-badan ini di sini .
Sudah beberapa tahun sejak pertanyaan ini diposting, tetapi saya menemukan saat mencari, jadi saya pikir saya akan memperbaruinya.
Google merilis LiquidFun (open source) untuk sistem Box2D. Ini memiliki beberapa keterbatasan, tetapi ini adalah cara cepat untuk memulai dengan partikel cair, pasir, dll dengan kinerja yang cukup baik.
https://github.com/google/liquidfun
PixelJunk memiliki pendekatan hebat, tetapi merupakan perpustakaan pribadi. Mereka berbagi tingkat detail yang luar biasa dalam pembicaraan mereka di GCD 2010.