流体の鉄人 ~ゲーム屋さんのための流体入門~ 田村 尚希 株式会社 Pyramid
0.会社紹介 <弊社の説明> 設立 2001年9月(5年目) 従業員 34名(内プログラマ19名) コンシューマゲーム機を中心に開発を行っている
0.会社紹介 <タイトル> DATA CARDDASS DRAGON BALL Z SHINING FORCE NEO DRAGONBALL Z BUDOKAI2(GAMECUBE port) GUNSLINGER GIRL SEVEN SAMURAI 20XX THE WILDRINGS DOUBLE STEAL ・・その他、自社コンテンツ開発
0.会社紹介 <開発> XP,SCRUM 等のアジャイル開発プロセスを採用している
0.会社紹介 <運営> 受託業務 ※運転資金の調達 自社コンテンツ開発 ※自社コンテンツの発信 技術研究開発 ※最先端技術の研究・共有・習得、及び発表
発表の流れ 1.概要 2.微分 3.Stable Fluids 4.応用 5.まとめ
発表の流れ 1.概要 2.微分 3.Stable Fluids 4.応用 5.まとめ
1.概要 ~はじめに~ 本セッションの内容 ゲーム開発者向けの流体力学の解説
1.概要 ~背景~ 本セッションの背景 流体力学を用いて、写実的なCGを作成する技術が発展
1.概要 ~背景~ 「Visual Simulation of Smoke」 [Fedkiw et al. SIGGRAPH2001]
1.概要 ~背景~ 「Animation and Rendering of Complex Water 1.概要 ~背景~ 「Animation and Rendering of Complex Water Surfaces」 [Enright et al. SIGGRAPH2002]
1.概要 ~背景~ 「Rigid Fluid : Animating the Interplay Between Rigid 1.概要 ~背景~ 「Rigid Fluid : Animating the Interplay Between Rigid bodies and Fluid」 [Carlson et al. SIGGRAPH2004]
1.概要 ~背景~ 特徴 既存技術では不可能なリアルな視覚表現・演出が可能 現在は非リアルタイム (1フレームの計算時間:数秒~数十分)
1.概要 ~概要~ ゲーム利用への課題 1.複雑な数学の理解 帰る頃には、すらすらです!! 2.多大な計算コストの解消 流体理論を丁寧に解説 1.概要 ~概要~ ゲーム利用への課題 1.複雑な数学の理解 帰る頃には、すらすらです!! 帰るころには、ばっちり分かります 流体理論を丁寧に解説 2.多大な計算コストの解消 次世代機の処理能力 (+皆様の処理能力)
煙ではなく、(空気の)流れそのものを計算 1.概要 ~概要~ 流体シミュレーションの概念 煙ではなく、(空気の)流れそのものを計算
1.概要 ~概要~ 流体計算の解き方 1.ボクセルベース 2.パーティクルベース
1.概要 ~概要~ ボクセルベース
1.概要 ~概要~ パーティクルベース
1.概要 ~概要~ 長所・短所 ボクセルベース パーティクルベース 長所:アルゴリズムの理解・実装が容易 1.概要 ~概要~ 長所・短所 ボクセルベース 長所:アルゴリズムの理解・実装が容易 短所:単位ボクセルよりも小さな流れが欠落 パーティクルベース 長所:局所的な細かな動きに対応できる 短所:パーティクルの数が少ないとノイズが発生
1.概要 ~目的~ 本セッションの目的 ボクセルベースの流体シミュレーションの基礎理論・実装方法の理解 (一部リアルタイム処理) 1.概要 ~目的~ 本セッションの目的 ボクセルベースの流体シミュレーションの基礎理論・実装方法の理解 (一部リアルタイム処理) 皆さんが流体シミュレーションに興味を 持つ機会になれば理想
発表の流れ 1.概要 2.微分 3.Stable Fluids 4.応用 5.まとめ
2.微分 ~スカラー・ベクトル~ スカラー・ベクトル スカラー ベクトル ある位置に対して値が一つ定まる量 (ex.温度) 2.微分 ~スカラー・ベクトル~ スカラー・ベクトル スカラー ある位置に対して値が一つ定まる量 (ex.温度) ベクトル スカラーをいくつか並べたもの (ex.速度)
2.微分 ~スカラー・ベクトル~ スカラー場
2.微分 ~スカラー・ベクトル~ ベクトル場
2.微分 ~微分~ 微分 ・微分 ・偏微分 ・勾配 ・発散 ・ラプラシアン ・微分 ・偏微分 ・勾配 ・発散 ・ラプラシアン ・微分 2.微分 ~微分~ 微分 ・微分 ・偏微分 ・勾配 ・発散 ・ラプラシアン ・微分 ・偏微分 ・勾配 ・発散 ・ラプラシアン ・微分 ・偏微分 ・勾配 ・発散 ・ラプラシアン ・微分 ・偏微分 ・勾配 ・発散 ・ラプラシアン ・微分 ・偏微分 ・勾配 ・発散 ・ラプラシアン 非圧縮性流体のNavier・Stokes方程式
2.微分 ~微分~ 微分
2.微分 ~微分~ 微分の差分近似
2.微分 ~偏微分~ 偏微分 x軸方向 y軸方向
2.微分 ~偏微分~ 偏微分の差分近似
2.微分 ~まとめ~ ・微分 微小区間における傾き ・偏微分 各軸方向の微分
2.微分 ~勾配~ 勾配(グラディエント) スカラーに作用して で計算されるベクトルを「勾配」と呼ぶ
2.微分 ~勾配~ 勾配の概念 勾配は 各位置において、変化が最も大きくなる方向を示すベクトル 変化が大きいほど、ベクトルの絶対値も大きい
2.微分 ~勾配~ 勾配の差分近似
2.微分 ~勾配~ 勾配の差分近似
2.微分 ~発散~ 発散(ダイバージェンス) ベクトルに作用して で計算されるスカラーを「発散」と呼ぶ
2.微分 ~発散~ 発散の概念
2.微分 ~発散~ 発散の概念
2.微分 ~発散~ 発散の概念
2.微分 ~発散~ 発散の概念 微小体積において、流出する量と流入する量との差を表す物理量 正ならば、場が対象領域から外部に流出 2.微分 ~発散~ 発散の概念 微小体積において、流出する量と流入する量との差を表す物理量 正ならば、場が対象領域から外部に流出 負ならば、場が外部から対象領域に流入
2.微分 ~発散~ 発散の差分近似
2.微分 ~発散~ 発散の差分近似
2.微分 ~まとめ~ ・勾配 変化が最も大きい方向を示すベクトル
2.微分 ~まとめ~ 微小空間の流入・流出量の差を表すスカラー ・発散 正ならば、場が対象領域から外部に流出 2.微分 ~まとめ~ ・発散 微小空間の流入・流出量の差を表すスカラー 正ならば、場が対象領域から外部に流出 負ならば、場が外部から対象領域に流入
2.微分 ~ラプラシアン~ ラプラシアン スカラーに作用して で計算されるスカラーを「ラプラシアン」と呼ぶ
2.微分 ~ラプラシアン~ ラプラシアンの概念
2.微分 ~ラプラシアン~ ラプラシアンの概念
2.微分 ~ラプラシアン~ ラプラシアンの概念
2.微分 ~ラプラシアン~ ラプラシアンの概念
2.微分 ~ラプラシアン~ ラプラシアンの概念
2.微分 ~ラプラシアン~ ラプラシアンの概念 ラプラシアンとは、周囲との相対的な差を表す物理量 周りと比べて小さければプラス 2.微分 ~ラプラシアン~ ラプラシアンの概念 ラプラシアンとは、周囲との相対的な差を表す物理量 自分が周りと比べて大きければマイナス 周りと比べて小さければプラス
2.微分 ~ラプラシアン~ ラプラシアンの概念 三次元スカラー場のラプラシアン
2.微分 ~まとめ~ ・微分 微小区間における傾き ・偏微分 各軸方向の微分
2.微分 ~まとめ~ ・勾配 変化が最も大きい方向を示すベクトル
2.微分 ~まとめ~ 微小空間の流入・流出量の差を表すスカラー ・発散 正ならば、場が対象領域から外部に流出 2.微分 ~まとめ~ ・発散 微小空間の流入・流出量の差を表すスカラー 正ならば、場が対象領域から外部に流出 負ならば、場が外部から対象領域に流入
2.微分 ~まとめ~ 周りとの相対的な差を表すスカラー ・ラプラシアン 大きければマイナス 小さければプラス 自分が周りと比べて 2.微分 ~まとめ~ ・ラプラシアン 周りとの相対的な差を表すスカラー 自分が周りと比べて 大きければマイナス 自分が周りと比べて 小さければプラス
発表の流れ 1.概要 2.微分 3.Stable Fluids 4.応用 5.まとめ
3.Stable Fluids ~概要~ 「Stable Fluids」 [Stam, SIGGRAPH 1999] ボクセルベースの手法 非圧縮流体を対象 近年の流体計算を使った論文で広く利用される手法 Navier-Stokes方程式を4Stepに分けて計算
3.Stable Fluids ~概要~ Navier-Stokes方程式の概念 速度場 速度場の時間変化を表す式 表3-1参照
3.Stable Fluids ~概要~ Navier-Stokes方程式の概念 非圧縮条件 表3-1参照
3.Stable Fluids ~外力~ 外力:風、重力などの外からの力 表3-1参照
3.Stable Fluids ~移流~ 移流 : 流れに沿って移動する効果 表3-1参照
3.Stable Fluids ~拡散~ 拡散 : 速度場を均一化しようとする効果 表3-1参照
3.Stable Fluids ~圧力~ 圧力 : 非圧縮条件を満たすように働く力 表3-1参照
3.Stable Fluids ~概要~ Navier-Stokes方程式の概念 表3-1参照
3.Stable Fluids ~概要~ Stable Fluidsの概念 微小時間 を考え、離散的に 速度場の時間変化を計算 全ての要因を一度に考えるのは難しい 表2参照
3.Stable Fluids ~概要~ Stable Fluidsの概念 step4 step2 step3 step1 step4 表2参照
3.Stable Fluids ~外力~ Stable Fluids : step1 外力 step1 表3-2参照
3.Stable Fluids ~外力~ 外力:風、重力などの外からの力 表3-2参照
3.Stable Fluids ~外力~ 外力の計算方法 表3-2参照
3.Stable Fluids ~外力~ step1の擬似コード 表3-2参照 step1(u{x,y,z}, u{x,y,z}_force, u{x,y,z}_step1 ) { for(i=0; i<(Xvoxel_num);++i) { for(j=0; j<(Yvoxel_num);++j) { for(k=0; k<(Zvoxel_num);++k) { ux_step1[i][j][k] = ux[i][j][k] + dt * ux_force[i][j][k]; uy_step1[i][j][k] = uy[i][j][k] + dt * uy_force[i][j][k]; uz_step1[i][j][k] = uz[i][j][k] + dt * uz_force[i][j][k]; } } } } 表3-2参照
3.Stable Fluids ~移流~ Stable Fluids : step2 移流 step2 表3-3参照
3.Stable Fluids ~移流~ 移流 : 流れに沿って移動する効果 表3-3参照
3.Stable Fluids ~移流~ 一次元の移流 表3-3参照
3.Stable Fluids ~移流~ 一次元の移流 表3-3参照
3.Stable Fluids ~移流~ 一次元の移流 f が速度uで移動する様子を表す 表3-3参照
3.Stable Fluids ~移流~ 多次元の移流 (一次元) (二次元) (三次元) 表3-3参照
3.Stable Fluids ~移流~ 三次元の移流 表3-3参照
3.Stable Fluids ~移流~ 多次元の移流 →スカラー が速度場 によって移動 表3-3参照
3.Stable Fluids ~移流~ 多次元の移流 →スカラー が速度場 によって移動 → が速度場 によって移動 表3-3参照
3.Stable Fluids ~移流~ 多次元の移流 表3-3参照
3.Stable Fluids ~移流~ semi-Lagrange法(Stable Fluidsの移流解法) 前後からlinear補間 表3-3参照
3.Stable Fluids ~移流~ 三次元のsemi-Lagrange法 trilinear補間 表3-3参照
3.Stable Fluids ~移流~ 三次元のsemi-Lagrange法 表3-3参照
3.Stable Fluids ~移流~ step2の擬似コード 表3-3参照 step2( u{x,y,z}_step1, u{x,y,z}_step2 ) { for( i, j, k=0; i, j, k < (X,Y,Zvoxel_num); ++i, j, k) { x = i - dt * ux_step1[i][j][k]; y = j - dt * uy_step1[i][j][k]; z = k - dt * uz_step1[i][j][k]; ux_step2[i][j][k] = trilinear( ux_step1, x, y, z ); uy_step2[i][j][k] = trilinear( uy_step1, x, y, z ); uz_step2[i][j][k] = trilinear( uz_step1, x, y, z ); } } 表3-3参照
3.Stable Fluids ~拡散~ Stable Fluids : step3 拡散 step3 表3-4参照
3.Stable Fluids ~拡散~ 拡散 : 速度場を均一化しようとする効果 表3-4参照
3.Stable Fluids ~拡散~ 拡散方程式の概念 (拡散方程式) 場が均一化していく 表3-4参照
3.Stable Fluids ~拡散~ 拡散の計算方法 (拡散方程式) 表3-4参照
3.Stable Fluids ~拡散~ 拡散の計算方法 表3-4参照
3.Stable Fluids ~拡散~ 拡散の計算方法 ラプラシアン は前頁のような行列 で記述可能 表3-4参照
3.Stable Fluids ~拡散~ 連立方程式 拡散の計算方法 は と同じ形 要素数nは、非常に大きい (i.e. 三次元の場合n3) は と同じ形 連立方程式 要素数nは、非常に大きい (i.e. 三次元の場合n3) 表3-4参照
3.Stable Fluids ~拡散~ ガウス・ザイデル法 表3-4参照
3.Stable Fluids ~拡散~ ガウス・ザイデル法 表3-4参照
3.Stable Fluids ~拡散~ ガウス・ザイデル法 右辺 に適当な初期値を設定し、反復計算 右辺 に適当な初期値を設定し、反復計算 収束条件:行列Aの対角成分が0ではない。 行列Aの対角成分が他の成分より大きい 表3-4参照
3.Stable Fluids ~拡散~ step3の擬似コード(1/2) 表3-4参照 Gauss-Seidel( float* in, float*out ) { a = dt * ν / ( Δx*Δx ); for ( iter=0; iter < (iter_num(i.e. 20)); ++iter) { for ( i, j, k=0; i, j, k < (X,Y,Zvoxel_num); ++i, j, k) { out[i][j][k] = ( in[i][j][k] + a * ( out[i+1][j][k] + out[i-1][j][k] + out[i][j+1][k] + out[i][j-1][k] + out[i][j][k+1] + out[i][j][k-1] )) / ( 1+ 6*a ) } } } 表3-4参照
3.Stable Fluids ~拡散~ step3の擬似コード(2/2) 表3-4参照 step3( u{x,y,z}_step2, u{x,y,z}_spte3 ) { Gauss-Seidel( ux_step2, ux_step3 ); Gauss-Seidel( uy_step2, uy_step3 ); Gauss-Seidel( uz_step2, uz_step3 ); } 表3-4参照
3.Stable Fluids ~拡散~ Stable Fluids : step4 圧力 step4 step4 表3-5参照
3.Stable Fluids ~圧力~ 圧力 : 非圧縮条件を満たすように働く力 表3-5参照
3.Stable Fluids ~圧力~ 圧力 : 非圧縮条件を満たすように働く力 表3-5参照
3.Stable Fluids ~圧力~ 圧力の計算方法 両辺、発散を計算 表3-5参照
3.Stable Fluids ~圧力~ 圧力の計算方法 非圧縮条件より 表3-5参照
3.Stable Fluids ~圧力~ 圧力の計算方法 圧力のスカラー場 を計算 の勾配を計算し、 から減算 表3-5参照
3.Stable Fluids ~圧力~ 圧力の計算方法 拡散と同じく、ラプラシアン は行列 で記述可能 は と同じ形 →ガウス・ザイデル法 拡散と同じく、ラプラシアン は行列 で記述可能 は と同じ形 →ガウス・ザイデル法 表3-5参照
3.Stable Fluids ~圧力~ step4の擬似コード(1/3) 表3-5参照 step4( u{x,y,z}_step3, u{x,y,z}_step4 ) { for( i, j, k=0; i, j, k < (X,Y,Zvoxel_num); ++i, j, k) { div[i][j][k] = ( ) / ( 2*Δx ); ux_step3[i+1][j][k] - ux_step3[i-1][j][k] + uy_step3[i][j+1][k] - uy_step3[i][j-1][k] + uz_step3[i][j][k+1] - uz_step3[i][j][k-1] } 表3-5参照
3.Stable Fluids ~圧力~ step4の擬似コード(2/3) 表3-5参照 a = (Δx*Δx ); for ( iter=0; iter < (iter_num(i.e. 20)); ++iter) { for ( i, j, k=0; i, j, k < (X,Y,Zvoxel_num); ++i, j, k) { p[i][j][k] = ( -a*div[i][j][k] + ( p[i+1][j][k] + p[i-1][j][k] + p[i][j+1][k] + p[i][j-1][k] + p[i][j][k+1] + p[i][j][k-1] )) / 6; } } 表3-5参照
3.Stable Fluids ~圧力~ step4の擬似コード(3/3) 表3-5参照 for( i, j, k=0; i, j, k < (X,Y,Zvoxel_num); ++i, j, k) { ux_step4[i][j][k] = ux_step3[i][j][k] - (p[i+1][j][k] – p[i-1][j][k]) / ( 2*Δx ); uy_step4[i][j][k] = uy_step3[i][j][k] - (p[i][j+1][k] – p[i][j-1][k]) / ( 2*Δy ); uz_step4[i][j][k] = uz_step3[i][j][k] - (p[i][j][k+1] – p[i][j][k-1]) / ( 2*Δz ); } } 表3-5参照
3.Stable Fluids ~境界~ 境界の扱い 速度: 境界で速度0 シミュレーションボクセル 圧力: 微分値が0 境界ボクセル
3.Stable Fluids ~まとめ~ Navier-Stokes方程式 表3-1参照
発表の流れ 1.概要 2.微分 3.Stable Fluids 4.応用 5.まとめ
4.応用 ~概要~ 応用 煙 煙の濃度計算 煙の可視化
4.応用 ~煙の濃度計算~ 非圧縮流体のNavier-Stokes方程式 煙の方程式 表4参照
4.応用 ~煙の濃度計算~ 外力:煙の供給などの外からの影響 表4参照
4.応用 ~煙の濃度計算~ 移流:流れに沿って移動する効果 表4参照
4.応用 ~煙の濃度計算~ 拡散 : 濃度を均一化しようとする効果 表4参照
4.応用 ~煙の濃度計算~ 煙の変化の概念 step2 step3 step1 表4参照
4.応用 ~煙の外力~ 煙の変化の概念 step1 表4参照
4.応用 ~煙の外力~ 外力の計算方法 表4参照
4.応用 ~煙の外力~ step1の擬似コード 表4参照 step1(d, d_force, d_step1 ) { 4.応用 ~煙の外力~ step1の擬似コード step1(d, d_force, d_step1 ) { for( i, j, k=0; i, j, k < (X,Y,Zvoxel_num); ++i, j, k) { d_step1[i][j][k] = d[i][j][k] + dt * d_force[i][j][k]; } } 表4参照
4.応用 ~煙の移流~ 煙の変化の概念 step2 表4参照
4.応用 ~煙の移流~ 多次元の移流 →スカラー が速度場 によって移動 表4参照
4.応用 ~煙の移流~ 三次元のsemi-Lagrange法 表4参照
4.応用 ~煙の移流~ step2の擬似コード 表4参照 step2( d_step1, d_step2 ) { 4.応用 ~煙の移流~ step2の擬似コード step2( d_step1, d_step2 ) { for( i, j, k=0; i, j, k < (X,Y,Zvoxel_num); ++i, j, k) { x = i - dt * ux[i][j][k]; y = j - dt * uy[i][j][k]; z = k - dt * uz[i][j][k]; d_step2[i][j][k] = trilinear( d_step1, x, y, z ); } } 表4参照
4.応用 ~煙の拡散~ 煙の変化の概念 step3 表4参照
4.応用 ~煙の拡散~ 拡散方程式の概念 (拡散方程式) 場が均一化していく 表4参照
4.応用 ~煙の拡散~ 拡散の計算方法 (拡散方程式) 表4参照
4.応用 ~煙の拡散~ 拡散の計算方法 は と同じ形 →ガウス・ザイデル法 表4参照
4.応用 ~煙の拡散~ step3の擬似コード(1/2) 表4参照 Gauss-Seidel( float* in, float*out ) 4.応用 ~煙の拡散~ step3の擬似コード(1/2) Gauss-Seidel( float* in, float*out ) { a = dt * κ / ( Δx*Δx ); for ( iter=0; iter < (iter_num(i.e. 20)); ++iter) { for ( i, j, k=0; i, j, k < (X,Y,Zvoxel_num); ++i, j, k) { out[i][j][k] = ( in[i][j][k] + a * ( out[i+1][j][k] + out[i-1][j][k] + out[i][j+1][k] + out[i][j-1][k] + out[i][j][k+1] + out[i][j][k-1] )) / ( 1+ 6*a ) } } } 表4参照
4.応用 ~煙の拡散~ step3の擬似コード(2/2) 表4参照 step3( d_step2, d_spte3 ) { 4.応用 ~煙の拡散~ step3の擬似コード(2/2) step3( d_step2, d_spte3 ) { Gauss-Seidel( d_step2, d_step3 ); } 表4参照
4.応用 ~煙の可視化~ 煙の可視化 シミュレーション結果(煙の濃度)は、 ボクセルデータ(ボリュームデータ) 4.応用 ~煙の可視化~ 煙の可視化 シミュレーション結果(煙の濃度)は、 ボクセルデータ(ボリュームデータ) ボリュームレンダリングを行い可視化 レイキャスティング法、スプラッティング法 などを利用
4.応用 ~煙の可視化~ レイキャスティング法 Δs screen
4.応用 ~煙の可視化~ レイキャスティング法 ボクセルの色C(s3)*不透明度α(s3) *透明度(1-α(s2))*透明度(1-α(s1)) ボクセルの色C(s2)*不透明度α(s2) *透明度(1-α(s1)) ボクセルの色C(s1)*不透明度α(s1)
4.応用 ~煙の可視化~ GPUを利用したボリュームレンダリング スライス(ポリゴン)を一定間隔に配置 ボリュームデータをfetchし描画 4.応用 ~煙の可視化~ GPUを利用したボリュームレンダリング スライス(ポリゴン)を一定間隔に配置 ボリュームデータをfetchし描画 alpha blendingを用いて加算
1.概要 ~概要~ GPUを利用したボリュームレンダリング
4.応用 ~応用~ 応用 煙のシミュレーション 速度場の計算 → 煙の濃度を移流・拡散 火のシミュレーション 速度場の計算 4.応用 ~応用~ 応用 煙のシミュレーション 速度場の計算 → 煙の濃度を移流・拡散 火のシミュレーション 速度場の計算 → 熱・温度を移流・拡散 水のシミュレーション 速度場の計算 → 水表面(水表面からの距離)を移流・拡散
発表の流れ 1.概要 2.微分 3.Stable Fluids 4.応用 5.まとめ
5.まとめ ~まとめ~ まとめ 流体の基礎理論を解説 非圧縮性流体のNavier-Stokes方程式の説明 ボクセルベースの解法について説明 5.まとめ ~まとめ~ まとめ 流体の基礎理論を解説 非圧縮性流体のNavier-Stokes方程式の説明 ボクセルベースの解法について説明 Stable Fluidsの解説
5.まとめ ~まとめ~ 非圧縮性流体のNavier-Stokes方程式 外力 移流 拡散 圧力 +非圧縮条件
5.まとめ ~まとめ~ Stable Fluids
5.まとめ ~高速化~ 高速化の方向性 GPU、SIMDの利用 大部分は各ボクセル独立→並列化 グリッドサイズの最小化 5.まとめ ~高速化~ 高速化の方向性 GPU、SIMDの利用 大部分は各ボクセル独立→並列化 グリッドサイズの最小化 三次元の処理コストはO(n3)
5.まとめ ~最後に~ 質問・ご意見は以下までお寄せ下さい Pyramid HP - http://www.pyramid-inc.net/ 5.まとめ ~最後に~ 質問・ご意見は以下までお寄せ下さい Pyramid HP - http://www.pyramid-inc.net/ 近日中にPowerPointファイルをUpします E-mail rd@pyramid-inc.net
5.まとめ ~参考文献~ 参考文献 Real-Time Fluid Dynamics for Games GPU Gems 5.まとめ ~参考文献~ 参考文献 Real-Time Fluid Dynamics for Games Stam氏自らStable Fluidsを解説 二次元のStable Fluidsのソースコード付き http://www.dgp.toronto.edu/people/stam/reality/ Research/pub.html GPU Gems 二次元のStable Fluidsの解説+GPU実装(38章) GPUを用いたボリュームレンダリングの解説(39章)
5.まとめ ~参考文献~ 参考文献(Paper) 今回紹介した大本の論文 Stable Fluids, SIGGRAPH 1999 5.まとめ ~参考文献~ 参考文献(Paper) 今回紹介した大本の論文 Stable Fluids, SIGGRAPH 1999 http://www.dgp.toronto.edu/people/stam/stam.html よりDL可能 煙関係 Visual Simulation of Smoke, SIGGRAPH 2001 http://graphics.stanford.edu/~fedkiw/よりDL可能
5.まとめ ~参考文献~ 参考文献(Paper) 水関係 5.まとめ ~参考文献~ 参考文献(Paper) 水関係 Animation and Rendering of Complex Water Surfaces, SIGGRAPH2002 Practical Animation of Liquids, SIGGRAPH 2001 炎関係 Physically Based Modeling and Animation of Fire, SIGGRAPH 2002 http://graphics.stanford.edu/~fedkiw/よりDL可能
5.まとめ ~参考文献~ 参考文献(書籍) Javaによる流体・熱流動の数値シミュレーション 5.まとめ ~参考文献~ 参考文献(書籍) Javaによる流体・熱流動の数値シミュレーション 峯村 吉泰/著 森北出版 ISBN4-627-91751-1 ・基礎から実際のソースコードまで幅広く解説 粒子法 越塚誠一/著 丸善 ISBN4-621-07522-5 ・パーティクルベースの流体解析手法の解説
5.まとめ ~参考文献~ 参考文献(Homepage) Ronald Fedkiw氏のHomepage Jos Stam氏のHomepage 5.まとめ ~参考文献~ 参考文献(Homepage) Ronald Fedkiw氏のHomepage http://graphics.stanford.edu/~fedkiw/ Jos Stam氏のHomepage http://www.dgp.toronto.edu/people/stam/stam.html Tim Rowley氏のHomepage(論文リンク集) http://www.cs.brown.edu/~tor/
5.まとめ ~終わり~ ご清聴ありがとうございました
6.Appendix ~表1.微分のまとめ~ ・微分 微小区間における傾き ・偏微分 各軸方向の微分
6.Appendix ~表1.微分のまとめ~ ・勾配 変化が最も大きい方向を示すベクトル
6.Appendix ~表1.微分のまとめ~ 微小空間の流入・流出量の差を表すスカラー ・発散 正ならば、場が対象領域から外部に流出 微小空間の流入・流出量の差を表すスカラー 正ならば、場が対象領域から外部に流出 負ならば、場が外部から対象領域に流入
6.Appendix ~表1.微分のまとめ~ 周りとの相対的な差を表すスカラー ・ラプラシアン 大きければマイナス 小さければプラス 周りとの相対的な差を表すスカラー 自分が周りと比べて 大きければマイナス 自分が周りと比べて 小さければプラス
6.Appendix ~表2.Navier Stokes~ 非圧縮条件
6.Appendix ~表2.Stable Fluids~
6.Appendix ~記号表~ 表3-1 「Stable Fluidsの概念」までで使用する記号
6.Appendix ~記号表~ 表3-2 「step1:外力」で使用する記号
6.Appendix ~記号表~ 表3-3 「step2:移流」で使用する記号
6.Appendix ~記号表~ 表3-4 「step3:拡散」で使用する記号 x x
6.Appendix ~記号表~ 表3-5 「step4:圧力」で使用する記号
6.Appendix ~記号表~ 表4 「煙の濃度計算」で使用する記号