Bagaimana cara membuat partikel 2D sebagai cairan?

45

Misalkan Anda memiliki cara yang baik untuk memindahkan partikel 2D Anda untuk mensimulasikan cairan (seperti air). Ada ide tentang cara merendernya?

Ini untuk game 2D, di mana perspektifnya dari samping, seperti ini . Air akan terkandung dalam kotak yang bisa dipecah agar jatuh dan berinteraksi dengan benda lain. Cara paling sederhana yang muncul di benak saya adalah menggunakan gambar kecil untuk setiap partikel. Saya tertarik mendengar lebih banyak cara memberikan air.

Lukas
sumber

Jawaban:

28

Lihat bagaimana PixelJunk Shooter melakukannya (termasuk simulasi) dalam presentasi ini (PDF) di GDC2010.


Contoh PixelJunk Shooter Image

George Duckett
sumber
1
Tidak tahu PixelJunk ... benar-benar hadiah yang bagus. Terima kasih!
Lukas
Sebuah Link ke trailer :)
David Gouveia
Apa itu SPU, PPU, SPURS?
Martijn Courteaux
@ MartjinCourteaux: mereka adalah bagian dari CPU Sel PS3. Pikirkan mereka seperti GPU shaders, meskipun ada beberapa perbedaan utama.
Sean Middleditch
12

Jawaban George Duckett jauh lebih langsung dan disajikan dengan sangat baik jika Anda membutuhkan air yang sepenuhnya disimulasikan dalam permainan Anda. Untuk fisika air dangkal yang disimulasikan dengan akurasi minimal (kurang realisme, lebih menyenangkan), gambar ini memberi saya momen kejelasan yang luar biasa:

http://www.patrickmatte.com/stuff/physicsLiquid/

DaveStance
sumber
Sederhana dan menyenangkan! Tidak benar-benar berpikir untuk menggunakan langkah pasca-pemrosesan yang sederhana ... hanya ingin tahu apakah perangkat seperti iPhone akan menangani ini. Tampaknya menjadi titik awal yang baik. Terima kasih.
Lukas
Saya bisa menjamin pendekatan ini. Saya menggunakannya sekali dalam suatu proyek dan itu bekerja dengan indah. Tambahkan filter bevel dan Anda dapat memiliki meniskus yang bagus di gumpalan Anda juga.
scriptocalypse
Sangat keren! Tapi saya tidak yakin seberapa baik itu mengakomodasi karakter yang berjalan melewatinya. Itu akan mendorong semua bola ke satu sisi, bukan?
Maks
6

Atau, untuk pendekatan yang cepat dan mudah: Gunakan metaballs !

Metaballs 3d


sumber
5

Grant Kot telah menempatkan beberapa kode simulasi fluida-nya di Github dengan implementasi di javascript (kanvas) dan C ++ dengan OpenFrameworks: https://github.com/kotsoft

Dia memiliki beberapa demo di akun youtube-nya: http://youtu.be/HqWheJSEiaw

Saya tidak tahu cara kerjanya, tapi saya tahu ini berjalan cepat dan ada banyak variasi untuk membuatnya. Kata kunci yang baik untuk dicari mungkin "partikel multigrid".

michael.bartnett
sumber
Saya sangat suka bagaimana Grant Kot mensimulasikan cairan! Bahkan jika renderingnya minimal, setidaknya pada applet pada halaman web itu. Ini sebagai banyak parameter untuk mengontrol simulasi. Layak untuk dilihat lebih dalam. Terima kasih.
Lukas