Pemodelan asap dan fenomena gas lainnya telah menerima banyak perhatian dari masyarakat komputer grafis atas dua dekade terakhir. Model awal difokuskan pada fenomena tertentu dan animasi kepadatan asap secara langsung tanpa pemodelan kecepatannya [10, 15, 5, 16]. Detail tambahan ditambahkan dengan menggunakan tekstur padat parameter yang telah animasi dari waktu ke waktu. Selanjutnya, bidang kecepatan acak berdasarkan spektrum Kolmogoroff digunakan untuk model karakteristik gerak kompleks asap [18]. A umum sifat yang dimiliki oleh semua ini model awal adalah bahwa mereka tidak memiliki apapun umpan balik dinamis. Membuat simulasi asap dinamis meyakinkan adalah pekerjaan yang memakan jika dibiarkan animator waktu. Cara yang lebih alami untuk model gerakan asap adalah untuk mensimulasikan persamaan dinamika fluida secara langsung. Kajiya dan Von Herzen adalah yang pertama di CG untuk melakukan hal ini [13]. Sayangnya, komputer daya yang tersedia pada saat itu (1984) hanya memungkinkan mereka untuk menghasilkan Hasil pada grid sangat kasar. Kecuali untuk beberapa model khusus untuk dua dimensi [21, 9], tidak ada kemajuan dalam arah ini sampai karya Foster dan Metaxas [7, 6]. Simulasi mereka digunakan grid relatif kasar tapi diproduksi baik gerakan asap berputar-putar di tiga-dimensi. Karena model mereka menggunakan integrasi eksplisit skema, simulasi mereka hanya stabil jika langkah waktu yang dipilih cukup kecil. Hal ini membuat simulasi mereka relatif lambat, terutama ketika kecepatan fluida di mana saja besar dalam domain yang menarik. Untuk mengatasi masalah ini Stam memperkenalkan model yang tanpa syarat stabil dan akibatnya bisa dijalankan dengan kecepatan apapun
[17]. Hal ini dicapai dengan menggunakan kombinasi semi-Lagrangian skema adveksi dan pemecah implisit. Karena integrasi urutan pertama Skema yang digunakan, simulasi menderita terlalu banyak disipasi numerik. Meskipun gerakan keseluruhan terlihat cairan seperti, vortisitas skala kecil khas asap lenyap terlalu cepat.
Baru-baru ini, Yngve et al. diusulkan pemecahan versi kompresibel persamaan aliran fluida untuk model ledakan [22]. sementara persamaan kompresibel berguna untuk gelombang kejut pemodelan dan fenomena kompresibel lainnya, mereka memperkenalkan sangat ketat Waktu pembatasan langkah terkait dengan gelombang akustik. kebanyakan CFD praktisi menghindari kondisi ketat ini dengan menggunakan mampat
persamaan bila memungkinkan. Oleh karena itu, kita tidak menganggap persamaan aliran kompresibel. Alternatif lain yang menarik yang kita tidak mengejar dalam makalah ini adalah penggunaan pemecah gas kisi
berdasarkan selular automata [4].
Vorticity Confinement
Vorticity Confinement
Biasanya asap dan campuran udara berisi bidang kecepatan dengan besar penyimpangan spasial disertai dengan sejumlah besar rotasi dan struktur turbulen pada berbagai skala. numerik nonfisik disipasi meredam out fitur aliran yang menarik, dan tujuan pendekatan baru kami adalah untuk menambahkan mereka kembali kasar yang jaringan. Salah satu cara untuk menambahkan mereka kembali akan membuat acak atau
pseudo-random gangguan skala kecil dari medan aliran baik menggunakan model heuristik atau berdasarkan fisik. Misalnya, seseorang dapat menghasilkan perbedaan medan kecepatan gratis menggunakan spektrum Kolmogorov dan menambahkan ini ke medan aliran dihitung untuk mewakili hilang struktur skala kecil (lihat [18] untuk beberapa aplikasi CG dari Kolmogorov spektrum). Sementara ini memberikan detil skala kecil untuk aliran, tidak menempatkan rincian skala kecil di fisik lokasi yang benar dalam medan aliran di mana detail kecil hilang. Sebaliknya, rincian ditambahkan secara serampangan dan asap dapat muncul menjadi "hidup", bergulir dan meringkuk di busana nonfisik. Kunci untuk animasi realistis asap untuk membuatnya terlihat seperti fenomena alam pasif sebagai lawan "Hidup" makhluk yang terbuat dari asap. Metode kami mencari lokasi di dalam medan aliran mana fitur skala kecil harus dihasilkan dan menambahkan skala kecil fitur di lokasi tersebut secara fisik berbasis yang mempromosikan rolling pasif asap yang memberikan bergolak realistis terlihat pada CG grid kasar. Dengan kekuatan komputasi terbatas, metode numerik yang konsisten dapat digunakan untuk mendapatkan diterima hasil hanya dengan meningkatkan jumlah titik-titik grid sampai perilaku membatasi diinginkan diamati. Namun, dalam praktiknya, sumber daya komputasi yang terbatas, grid cukup kasar (bahkan kasar di CG daripada di CFD), dan persamaan perbedaan diskrit mungkin tidak asimtotik cukup dekat untuk persamaan kontinu untuk simulasi tertentu untuk berperilaku yang diinginkan secara fisik busana yang benar. Ide utama kami adalah untuk merancang numerik yang konsisten
Metode yang berperilaku dengan cara yang menarik dan masuk akal secara fisik pada grid kasar. Secara umum, ini sangat sulit untuk dilakukan, tetapi Untungnya metode vortisitas kurungan baru-baru ini ditemukan oleh Steinhoff, lihat mis [20], untuk perhitungan numerik kompleks bidang aliran turbulen di sekitar helikopter di mana tidak mungkin untuk menambahkan titik-titik grid yang cukup untuk secara akurat menyelesaikan aliran.Penerapan
Kami menggunakan volume diskritisasi spasial terbatas untuk memecahkan numerik
persamaan aliran fluida. Seperti ditunjukkan dalam Gambar 1, kita milah sampai domain komputasi menjadi voxel identik. Suhu, densitas asap dan kekuatan eksternal didefinisikan di pusat setiap voxel sementara kecepatan didefinisikan pada voxel yang sesuai wajah (lihat Gambar 1, kanan). Perhatikan bahwa pengaturan ini identik dengan yang Foster dan Metaxas [6] tetapi berbeda dari yang digunakan oleh
Stam [17] di mana kecepatan didefinisikan di pusat voxel sebagai baik. Pengaturan grid terhuyung kami dari medan kecepatan memberi ditingkatkan Hasil untuk metode numerik dengan disipasi kurang buatan.
Lihat Lampiran A untuk rincian lebih lanjut tentang diskritisasi kami.
Untuk menangani batas tenggelam dalam cairan kita menandai semua voxel yang bersinggungan obyek sebagai yang diduduki. Semua sel voxel diduduki wajah memiliki kecepatan mereka diatur ke yang objek. Demikian pula, Suhu di pusat voxel diduduki diatur ke objek suhu. Akibatnya seorang animator dapat membuat banyak menarik efek hanya dengan menggerakkan atau memanas obyek. Asap ini kepadatan ini tentu saja sama dengan nol dalam obyek. Namun, untuk menghindari drop-off tiba-tiba kepadatan dekat batas objek, kita mengatur kepadatan pada batas voxel sama dengan densitas terdekat voxel kosong.
Pemecah kami membutuhkan dua grid voxel untuk semua kuantitas fisik. Kami memajukan simulasi kami dengan memperbarui satu grid dari yang lain lebih dari waktu yang tetap langkah * ?. Pada akhir setiap langkah waktu kita menukar grid ini. Grid awalnya mungkin mengandung beberapa data pengguna yang tersedia, tetapi dalam banyak kasus grid hanya kosong. Kami pertama kali memperbarui komponen kecepatan fluida. Hal ini dilakukan dalam tiga langkah. pertama, kita menambahkan medan gaya dengan kecepatan jaringan. Pasukan termasuk pengguna bidang yang disediakan, gaya apung didefinisikan oleh Persamaan 8 dan kekuatan kurungan baru didefinisikan oleh Persamaan 11 ini dilakukan dengan hanya mengalikan setiap kekuatan oleh langkah waktu dan menambahkannya ke kecepatan (lihat lampiran A). Selanjutnya kita memecahkan untuk jangka adveksi di Persamaan 3 Kami ini menggunakan skema semi-Lagrangian, lihat [19] untuk review dan [17] untuk aplikasi pertama dalam komputer grafis.
Algoritma semi-Lagrangian membangun jaringan baru kecepatan dari yang sudah dihitung dengan menelusuri titik-titik tengah dari masing-masing voxel wajah melalui medan kecepatan. Kecepatan baru kemudian diinterpolasi pada titik-titik ini dan nilai-nilai mereka akan ditransfer ke wajah sel mereka berasal dari. Ada kemungkinan bahwa titik berakhir dalam satu dari voxel diduduki. Dalam hal ini kita hanya klip jalan terhadap batas voxel seperti yang ditunjukkan pada Gambar 2 ini menjamin bahwa Titik selalu terletak pada cairan kosong. Interpolasi linier sederhana mudah untuk menerapkan dan dikombinasikan dengan kurungan baru kekuatan memberikan hasil yang memuaskan. Hal ini juga tanpa syarat stabil. Skema interpolasi pesanan yang lebih tinggi, namun, diinginkan dalam beberapa kasus untuk animasi berkualitas tinggi. Bagian tersulit dengan tatanan yang lebih tinggi skema adalah bahwa mereka biasanya overshoot data yang menghasilkan ketidakstabilan. Dalam lampiran B kami menyediakan interpolator kubik yang
tidak overshoot data.
Akhirnya kami memaksa medan kecepatan untuk menghemat massa. Seperti yang telah dinyatakan dalam bagian 2, ini melibatkan solusi dari persamaan Poisson untuk tekanan (Persamaan 4). The diskritisasi dari persamaan ini hasil dalam sistem linear jarang persamaan. Kami memberlakukan gratis Neumann kondisi batas pada voxel diduduki oleh pengaturan normal gradien tekanan sama dengan nol pada wajah batas diduduki. Sistem persamaan simetris, dan linier paling alami Pemecah dalam hal ini adalah metode conjugate gradient. metode ini mudah untuk menerapkan dan memiliki sifat konvergensi yang jauh lebih baik daripada metode relaksasi sederhana. Untuk meningkatkan konvergensi kami menggunakan sebuah Choleski preconditioner lengkap. Teknik-teknik ini semua cukup standar dan kami merujuk pembaca ke teks standar [11] untuk lebih jelasnya. Dalam prakteknya kami menemukan bahwa hanya sekitar 20 iterasi dari Pemecah ini memberi kami hasil visual yang dapat diterima. Setelah tekanan dihitung, kita mengurangi gradien dari kecepatan. Lihat Lampiran A untuk diskritisasi yang tepat dari operator yang terlibat.
Setelah kecepatan diperbarui, kami advect baik suhu dan kepadatan asap itu. Kami memecahkan persamaan ini menggunakan lagi skema semi-Lagrangian. Dalam hal ini, namun, kami menelusuri kembali
pusat masing-masing voxel. Skema interpolasi mirip dengan kasus kecepatan.
References
[1] P. Blasi, B. Le Saec, and C. Schlick. A Rendering Algorithm for Discrete Volume Density Objects. Computer Graphics Forum (EUROGRAPHICS 93 Conference Proceedings), 12(3):201–210, 1993.
[2] S. Chandrasekhar. Radiative Transfer. Dover, New York,1960.
[3] A. Chorin. A Numerical Method for Solving Incompressible Viscous Flow Problems. Journal of Computational Physics, 2:12–26, 1967.
[4] Y. Dobashi, K. Kaneda, T. Okita, and T. Nishita. A Simple, Efficient Method for Realistic Animation of Clouds. In SIGGRAPH 2000 Conference Proceedings, Annual Conference
Series, pages 19–28, July 2000.
Pemecah kami membutuhkan dua grid voxel untuk semua kuantitas fisik. Kami memajukan simulasi kami dengan memperbarui satu grid dari yang lain lebih dari waktu yang tetap langkah * ?. Pada akhir setiap langkah waktu kita menukar grid ini. Grid awalnya mungkin mengandung beberapa data pengguna yang tersedia, tetapi dalam banyak kasus grid hanya kosong. Kami pertama kali memperbarui komponen kecepatan fluida. Hal ini dilakukan dalam tiga langkah. pertama, kita menambahkan medan gaya dengan kecepatan jaringan. Pasukan termasuk pengguna bidang yang disediakan, gaya apung didefinisikan oleh Persamaan 8 dan kekuatan kurungan baru didefinisikan oleh Persamaan 11 ini dilakukan dengan hanya mengalikan setiap kekuatan oleh langkah waktu dan menambahkannya ke kecepatan (lihat lampiran A). Selanjutnya kita memecahkan untuk jangka adveksi di Persamaan 3 Kami ini menggunakan skema semi-Lagrangian, lihat [19] untuk review dan [17] untuk aplikasi pertama dalam komputer grafis.
Algoritma semi-Lagrangian membangun jaringan baru kecepatan dari yang sudah dihitung dengan menelusuri titik-titik tengah dari masing-masing voxel wajah melalui medan kecepatan. Kecepatan baru kemudian diinterpolasi pada titik-titik ini dan nilai-nilai mereka akan ditransfer ke wajah sel mereka berasal dari. Ada kemungkinan bahwa titik berakhir dalam satu dari voxel diduduki. Dalam hal ini kita hanya klip jalan terhadap batas voxel seperti yang ditunjukkan pada Gambar 2 ini menjamin bahwa Titik selalu terletak pada cairan kosong. Interpolasi linier sederhana mudah untuk menerapkan dan dikombinasikan dengan kurungan baru kekuatan memberikan hasil yang memuaskan. Hal ini juga tanpa syarat stabil. Skema interpolasi pesanan yang lebih tinggi, namun, diinginkan dalam beberapa kasus untuk animasi berkualitas tinggi. Bagian tersulit dengan tatanan yang lebih tinggi skema adalah bahwa mereka biasanya overshoot data yang menghasilkan ketidakstabilan. Dalam lampiran B kami menyediakan interpolator kubik yang
tidak overshoot data.
Akhirnya kami memaksa medan kecepatan untuk menghemat massa. Seperti yang telah dinyatakan dalam bagian 2, ini melibatkan solusi dari persamaan Poisson untuk tekanan (Persamaan 4). The diskritisasi dari persamaan ini hasil dalam sistem linear jarang persamaan. Kami memberlakukan gratis Neumann kondisi batas pada voxel diduduki oleh pengaturan normal gradien tekanan sama dengan nol pada wajah batas diduduki. Sistem persamaan simetris, dan linier paling alami Pemecah dalam hal ini adalah metode conjugate gradient. metode ini mudah untuk menerapkan dan memiliki sifat konvergensi yang jauh lebih baik daripada metode relaksasi sederhana. Untuk meningkatkan konvergensi kami menggunakan sebuah Choleski preconditioner lengkap. Teknik-teknik ini semua cukup standar dan kami merujuk pembaca ke teks standar [11] untuk lebih jelasnya. Dalam prakteknya kami menemukan bahwa hanya sekitar 20 iterasi dari Pemecah ini memberi kami hasil visual yang dapat diterima. Setelah tekanan dihitung, kita mengurangi gradien dari kecepatan. Lihat Lampiran A untuk diskritisasi yang tepat dari operator yang terlibat.
Setelah kecepatan diperbarui, kami advect baik suhu dan kepadatan asap itu. Kami memecahkan persamaan ini menggunakan lagi skema semi-Lagrangian. Dalam hal ini, namun, kami menelusuri kembali
pusat masing-masing voxel. Skema interpolasi mirip dengan kasus kecepatan.
References
[1] P. Blasi, B. Le Saec, and C. Schlick. A Rendering Algorithm for Discrete Volume Density Objects. Computer Graphics Forum (EUROGRAPHICS 93 Conference Proceedings), 12(3):201–210, 1993.
[2] S. Chandrasekhar. Radiative Transfer. Dover, New York,1960.
[3] A. Chorin. A Numerical Method for Solving Incompressible Viscous Flow Problems. Journal of Computational Physics, 2:12–26, 1967.
[4] Y. Dobashi, K. Kaneda, T. Okita, and T. Nishita. A Simple, Efficient Method for Realistic Animation of Clouds. In SIGGRAPH 2000 Conference Proceedings, Annual Conference
Series, pages 19–28, July 2000.