平成２１年度

E-05

情報処理学会関西支部大会

融解後の水を考慮した粒子ベース氷塊融解シミュレーション
Particle-based Simulation of Ice Melting Considering Liquid after Melting
内田 英行†
Hideyuki Uchida

岩崎 慶‡
Kei Iwasaki

１． はじめに3 ． GPU を用いた氷の伝熱シミュレーション

近年 CG による自然現象のシミュレーションは盛んに研究されており，氷塊融解シミュレーションについても重要な研究課題の 1 つである．藤澤らは， RCIP 法と界面数値拡散の制御手法(STAA 法)を用いることで，融解後の水を考慮したグリッドベース氷塊融解シミュレーションを提案した[1]．しかし融解後の液体に対する体積損失や，1 ステップに 1~2 分を要する計算コストの高さなどの問題がある．
そこで本論文では，融解後の水を考慮した氷塊融解シミュレーションをすべて粒子ベースで行う手法を提案する．
これにより融解後の液体に対する体積損失の問題を解決し，氷から水が滴るようなシーンを表現可能にする．また，氷への伝熱計算と融解後の水の流体シミュレーションについては，GPU を用いて並列処理することで高速化を図る．

3.1 伝熱の種類

空気
氷氷(a) 熱伝導2 ． シミュレーションの概要
本手法では，氷塊と融解後の水を粒子群として近似することでシミュレーションを行う．そして氷粒子に対しては伝熱シミュレーション，水粒子に対しては流体シミュレーションを適用することで氷塊融解現象を表現する．これらはすべて GPU 上で並列処理することで高速に計算を行う．
シミュレーションの概要図を以下に示す(図 2.1)．
START

オブジェクトなどの初期設定
タイムステップを進める(b) 熱伝達：氷粒子：水粒子

図 3.1：氷への伝熱
3.2 GPU による伝熱計算
GPU 上で伝熱計算を並列処理するためには，氷粒子の温度をテクスチャとしてビデオメモリ上に保持しておく必要がある．そこでテクスチャの 1 ピクセルと粒子とを対応させ，各ピクセルに氷粒子の温度を格納しておく．これによって伝熱計算をすべて GPU のフラグメントプログラムで計算することができる[2]．

4 ． GPU を用いた融解後の水シミュレーション
4.1 相転移近傍粒子探索伝熱シミュレーション

粒子の相氷粒子

水粒子

本研究では氷塊融解シミュレーションにおける伝熱として，熱伝導，熱伝達の 2 つを考慮する(図 3.1)．熱伝導は氷塊内部における伝熱のことを指し，熱伝達は空気から氷，または水から氷への伝熱のことを指す．

水粒子へ相転移温度 > 0℃&
熱量 > 潜熱

Yes

No

流体シミュレーション

伝熱計算によって 0℃以上になった氷粒子については，氷粒子から水粒子への相転移を考慮する．相転移の際，潜熱と呼ばれる固体の分子結合を破壊するためのエネルギーを考慮する必要がある．これは 0℃になった氷粒子をすぐに相転移させるのではなく，0℃になってから受けた熱量が閾値を満たしてから相転移を行うことで表現する．
氷粒子と水粒子の判別は，GPU 上にテクスチャを用意し，各粒子が氷粒子か水粒子かの情報を保持させておくことで処理する．

粒子を描画

GPU による処理

4.2 流体シミュレーション
NoYesEND

終了確認

図 2.1：シミュレーションの流れ† 和歌山大学大学院システム工学研究科‡ 和歌山大学システム工学部

相転移によって得られた水粒子は，粒子法の 1 つである
Smoothed Particle Hydrodynamics(SPH)法を用いて流体シミュレーションを適用する．これは原田らの手法に従ってGPU 上で並列処理し，高速にシミュレーションを行う[3]．

図 5.1：粒子数 237,466 個の Dragon による結果例

図 5.2：粒子数 102,077 個の氷柱による結果例
4.3 表面張力

5．結果

氷塊融解後の水は，表面張力によってある程度の大きさの水の塊(水滴)になり，重力の影響で落下していく．表面張力を考慮しない場合，水滴は形成されずに各水粒子が無造作に落下するような挙動を示し，現実的ではない．そこで以下の式によって水粒子へ表面張力を与える．

提案法によるシミュレーション結果として，Dragon と氷柱の融解現象の結果を図 5.1，5.2 に示す．計算環境は CPUが Core2 Quad Q9650 3.0GHz, メモリが 3.0GB, GPU がnVIDIA GeForce GTX280 である．シミュレーション 1 ステップあたりの計算時間を表 5.1 に示す．氷の温度-3℃，空気の温度 17℃，表面張力係数 k s は 0.5，界面張力係数 k h は2.0 としている．結果画像は，シミュレーションによって得られた計算粒子それぞれに濃度分布を与え，マーチングキ
ューブ法により等値面を抽出し，オフラインでレイトレーシングして作成した．

rfs =rr
x water− xiwaterj∑ k s xr water − xr waterj∈waterji(4.1)rrは近k s は表面張力係数， x iwater は注目水粒子の座標， x waterj

傍水粒子の座標である．
4.4 界面張力

現実に存在する物質には，濡れやすい性質(親水性)を持つ
ものと濡れにくい性質(疎水性)を持つものとがある．氷は親水性の高い物質であり，融解後の水は界面張力の影響で氷表面に薄い膜として留まる．親水性による界面張力を考慮しない場合，水粒子が氷の表面を転がりながら落下するような挙動を示し，現実的ではない．そこで氷粒子の近傍に存在する水粒子については，氷粒子へ吸着させるような力として界面張力を考慮する．界面張力は以下の式で計算される．

rr waterr
x icej − xif h = ∑ k h r ice r waterx j − xij∈icer(4.2)

rは近k h は界面張力係数， x iwater は注目水粒子の座標， x icej

傍氷粒子の座標である．
表面張力と界面張力による影響を図 4.1 に示す．これら 2つの力を考慮することで，氷表面の水の膜や水滴などの表現が可能になる．
：氷粒子：水粒子：表面張力：界面張力表面張力・界面張力を考慮考慮なし

図 4.1：表面張力と界面張力

表 5.1：1 ステップあたりの計算時間
オブジェクト粒子数

計算時間

フレームレート

Dragon氷柱

237,466
102,077

66 msec
55 msec

15.2 fps
18.2 fps

6．まとめ
本論文では，融解後の水を考慮した氷塊融解シミュレーションをすべて粒子ベースで行う手法を提案した．これにより融解後の液体に対する体積損失の問題を解決し，氷から水が滴るようなシーンを表現可能にした．また，氷粒子への伝熱計算と融解後の水の流体シミュレーションについては，GPU を用いて並列処理することで高速に計算することができた．今後の課題は重力による氷塊の分離，倒壊の考慮などが挙げられる．

参考文献[1] 藤澤誠，三浦憲二郎：熱力学に基づいた相転移をともなう氷解現象のアニメーション，情報処理学会論文誌，Vol.49
No.3，pp.1480-1488，2008．
[2] 内田英行，上田悟史，岩崎慶，吉本富士市：GPU を用いた粒子ベース氷塊融解シミュレーションの高速化，情報処理学会第 71 回全国大会，2Z-2，2009．
[3] 原田隆宏，田中正幸，越塚誠一，河口洋一郎：粒子ベースシミュレーションの並列化，情報処理学会論文誌，Vol.48
No.11，pp.3557-3567，2007．