Download presentation
Presentation is loading. Please wait.
1
流体の鉄人 ~ゲーム屋さんのための流体入門~ 田村 尚希 株式会社 Pyramid
2
0.会社紹介 <弊社の説明> 設立 2001年9月(5年目) 従業員 34名(内プログラマ19名) コンシューマゲーム機を中心に開発を行っている
3
0.会社紹介 <タイトル> DATA CARDDASS DRAGON BALL Z SHINING FORCE NEO
DRAGONBALL Z BUDOKAI2(GAMECUBE port) GUNSLINGER GIRL SEVEN SAMURAI 20XX THE WILDRINGS DOUBLE STEAL ・・その他、自社コンテンツ開発
4
0.会社紹介 <開発> XP,SCRUM 等のアジャイル開発プロセスを採用している
5
0.会社紹介 <運営> 受託業務 ※運転資金の調達 自社コンテンツ開発 ※自社コンテンツの発信 技術研究開発 ※最先端技術の研究・共有・習得、及び発表
6
発表の流れ 1.概要 2.微分 3.Stable Fluids 4.応用 5.まとめ
7
発表の流れ 1.概要 2.微分 3.Stable Fluids 4.応用 5.まとめ
8
1.概要 ~はじめに~ 本セッションの内容 ゲーム開発者向けの流体力学の解説
9
1.概要 ~背景~ 本セッションの背景 流体力学を用いて、写実的なCGを作成する技術が発展
10
1.概要 ~背景~ 「Visual Simulation of Smoke」 [Fedkiw et al. SIGGRAPH2001]
11
1.概要 ~背景~ 「Animation and Rendering of Complex Water
1.概要 ~背景~ 「Animation and Rendering of Complex Water Surfaces」 [Enright et al. SIGGRAPH2002]
12
1.概要 ~背景~ 「Rigid Fluid : Animating the Interplay Between Rigid
1.概要 ~背景~ 「Rigid Fluid : Animating the Interplay Between Rigid bodies and Fluid」 [Carlson et al. SIGGRAPH2004]
13
1.概要 ~背景~ 特徴 既存技術では不可能なリアルな視覚表現・演出が可能 現在は非リアルタイム (1フレームの計算時間:数秒~数十分)
14
1.概要 ~概要~ ゲーム利用への課題 1.複雑な数学の理解 帰る頃には、すらすらです!! 2.多大な計算コストの解消 流体理論を丁寧に解説
1.概要 ~概要~ ゲーム利用への課題 1.複雑な数学の理解 帰る頃には、すらすらです!! 帰るころには、ばっちり分かります 流体理論を丁寧に解説 2.多大な計算コストの解消 次世代機の処理能力 (+皆様の処理能力)
15
煙ではなく、(空気の)流れそのものを計算
1.概要 ~概要~ 流体シミュレーションの概念 煙ではなく、(空気の)流れそのものを計算
16
1.概要 ~概要~ 流体計算の解き方 1.ボクセルベース 2.パーティクルベース
17
1.概要 ~概要~ ボクセルベース
18
1.概要 ~概要~ パーティクルベース
19
1.概要 ~概要~ 長所・短所 ボクセルベース パーティクルベース 長所:アルゴリズムの理解・実装が容易
1.概要 ~概要~ 長所・短所 ボクセルベース 長所:アルゴリズムの理解・実装が容易 短所:単位ボクセルよりも小さな流れが欠落 パーティクルベース 長所:局所的な細かな動きに対応できる 短所:パーティクルの数が少ないとノイズが発生
20
1.概要 ~目的~ 本セッションの目的 ボクセルベースの流体シミュレーションの基礎理論・実装方法の理解 (一部リアルタイム処理)
1.概要 ~目的~ 本セッションの目的 ボクセルベースの流体シミュレーションの基礎理論・実装方法の理解 (一部リアルタイム処理) 皆さんが流体シミュレーションに興味を 持つ機会になれば理想
21
発表の流れ 1.概要 2.微分 3.Stable Fluids 4.応用 5.まとめ
22
2.微分 ~スカラー・ベクトル~ スカラー・ベクトル スカラー ベクトル ある位置に対して値が一つ定まる量 (ex.温度)
2.微分 ~スカラー・ベクトル~ スカラー・ベクトル スカラー ある位置に対して値が一つ定まる量 (ex.温度) ベクトル スカラーをいくつか並べたもの (ex.速度)
23
2.微分 ~スカラー・ベクトル~ スカラー場
24
2.微分 ~スカラー・ベクトル~ ベクトル場
25
2.微分 ~微分~ 微分 ・微分 ・偏微分 ・勾配 ・発散 ・ラプラシアン ・微分 ・偏微分 ・勾配 ・発散 ・ラプラシアン ・微分
2.微分 ~微分~ 微分 ・微分 ・偏微分 ・勾配 ・発散 ・ラプラシアン ・微分 ・偏微分 ・勾配 ・発散 ・ラプラシアン ・微分 ・偏微分 ・勾配 ・発散 ・ラプラシアン ・微分 ・偏微分 ・勾配 ・発散 ・ラプラシアン ・微分 ・偏微分 ・勾配 ・発散 ・ラプラシアン 非圧縮性流体のNavier・Stokes方程式
26
2.微分 ~微分~ 微分
27
2.微分 ~微分~ 微分の差分近似
28
2.微分 ~偏微分~ 偏微分 x軸方向 y軸方向
29
2.微分 ~偏微分~ 偏微分の差分近似
30
2.微分 ~まとめ~ ・微分 微小区間における傾き ・偏微分 各軸方向の微分
31
2.微分 ~勾配~ 勾配(グラディエント) スカラーに作用して で計算されるベクトルを「勾配」と呼ぶ
32
2.微分 ~勾配~ 勾配の概念 勾配は 各位置において、変化が最も大きくなる方向を示すベクトル 変化が大きいほど、ベクトルの絶対値も大きい
33
2.微分 ~勾配~ 勾配の差分近似
34
2.微分 ~勾配~ 勾配の差分近似
35
2.微分 ~発散~ 発散(ダイバージェンス) ベクトルに作用して で計算されるスカラーを「発散」と呼ぶ
36
2.微分 ~発散~ 発散の概念
37
2.微分 ~発散~ 発散の概念
38
2.微分 ~発散~ 発散の概念
39
2.微分 ~発散~ 発散の概念 微小体積において、流出する量と流入する量との差を表す物理量 正ならば、場が対象領域から外部に流出
2.微分 ~発散~ 発散の概念 微小体積において、流出する量と流入する量との差を表す物理量 正ならば、場が対象領域から外部に流出 負ならば、場が外部から対象領域に流入
40
2.微分 ~発散~ 発散の差分近似
41
2.微分 ~発散~ 発散の差分近似
42
2.微分 ~まとめ~ ・勾配 変化が最も大きい方向を示すベクトル
43
2.微分 ~まとめ~ 微小空間の流入・流出量の差を表すスカラー ・発散 正ならば、場が対象領域から外部に流出
2.微分 ~まとめ~ ・発散 微小空間の流入・流出量の差を表すスカラー 正ならば、場が対象領域から外部に流出 負ならば、場が外部から対象領域に流入
44
2.微分 ~ラプラシアン~ ラプラシアン スカラーに作用して で計算されるスカラーを「ラプラシアン」と呼ぶ
45
2.微分 ~ラプラシアン~ ラプラシアンの概念
46
2.微分 ~ラプラシアン~ ラプラシアンの概念
47
2.微分 ~ラプラシアン~ ラプラシアンの概念
48
2.微分 ~ラプラシアン~ ラプラシアンの概念
49
2.微分 ~ラプラシアン~ ラプラシアンの概念
50
2.微分 ~ラプラシアン~ ラプラシアンの概念 ラプラシアンとは、周囲との相対的な差を表す物理量 周りと比べて小さければプラス
2.微分 ~ラプラシアン~ ラプラシアンの概念 ラプラシアンとは、周囲との相対的な差を表す物理量 自分が周りと比べて大きければマイナス 周りと比べて小さければプラス
51
2.微分 ~ラプラシアン~ ラプラシアンの概念 三次元スカラー場のラプラシアン
52
2.微分 ~まとめ~ ・微分 微小区間における傾き ・偏微分 各軸方向の微分
53
2.微分 ~まとめ~ ・勾配 変化が最も大きい方向を示すベクトル
54
2.微分 ~まとめ~ 微小空間の流入・流出量の差を表すスカラー ・発散 正ならば、場が対象領域から外部に流出
2.微分 ~まとめ~ ・発散 微小空間の流入・流出量の差を表すスカラー 正ならば、場が対象領域から外部に流出 負ならば、場が外部から対象領域に流入
55
2.微分 ~まとめ~ 周りとの相対的な差を表すスカラー ・ラプラシアン 大きければマイナス 小さければプラス 自分が周りと比べて
2.微分 ~まとめ~ ・ラプラシアン 周りとの相対的な差を表すスカラー 自分が周りと比べて 大きければマイナス 自分が周りと比べて 小さければプラス
56
発表の流れ 1.概要 2.微分 3.Stable Fluids 4.応用 5.まとめ
57
3.Stable Fluids ~概要~ 「Stable Fluids」 [Stam, SIGGRAPH 1999] ボクセルベースの手法
非圧縮流体を対象 近年の流体計算を使った論文で広く利用される手法 Navier-Stokes方程式を4Stepに分けて計算
58
3.Stable Fluids ~概要~ Navier-Stokes方程式の概念 速度場 速度場の時間変化を表す式 表3-1参照
59
3.Stable Fluids ~概要~ Navier-Stokes方程式の概念 非圧縮条件 表3-1参照
60
3.Stable Fluids ~外力~ 外力:風、重力などの外からの力 表3-1参照
61
3.Stable Fluids ~移流~ 移流 : 流れに沿って移動する効果 表3-1参照
62
3.Stable Fluids ~拡散~ 拡散 : 速度場を均一化しようとする効果 表3-1参照
63
3.Stable Fluids ~圧力~ 圧力 : 非圧縮条件を満たすように働く力 表3-1参照
64
3.Stable Fluids ~概要~ Navier-Stokes方程式の概念 表3-1参照
65
3.Stable Fluids ~概要~ Stable Fluidsの概念 微小時間 を考え、離散的に 速度場の時間変化を計算
全ての要因を一度に考えるのは難しい 表2参照
66
3.Stable Fluids ~概要~ Stable Fluidsの概念 step4 step2 step3 step1 step4
表2参照
67
3.Stable Fluids ~外力~ Stable Fluids : step1 外力 step1 表3-2参照
68
3.Stable Fluids ~外力~ 外力:風、重力などの外からの力 表3-2参照
69
3.Stable Fluids ~外力~ 外力の計算方法 表3-2参照
70
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参照
71
3.Stable Fluids ~移流~ Stable Fluids : step2 移流 step2 表3-3参照
72
3.Stable Fluids ~移流~ 移流 : 流れに沿って移動する効果 表3-3参照
73
3.Stable Fluids ~移流~ 一次元の移流 表3-3参照
74
3.Stable Fluids ~移流~ 一次元の移流 表3-3参照
75
3.Stable Fluids ~移流~ 一次元の移流 f が速度uで移動する様子を表す 表3-3参照
76
3.Stable Fluids ~移流~ 多次元の移流 (一次元) (二次元) (三次元) 表3-3参照
77
3.Stable Fluids ~移流~ 三次元の移流 表3-3参照
78
3.Stable Fluids ~移流~ 多次元の移流 →スカラー が速度場 によって移動 表3-3参照
79
3.Stable Fluids ~移流~ 多次元の移流 →スカラー が速度場 によって移動 → が速度場 によって移動 表3-3参照
80
3.Stable Fluids ~移流~ 多次元の移流 表3-3参照
81
3.Stable Fluids ~移流~ semi-Lagrange法(Stable Fluidsの移流解法) 前後からlinear補間
表3-3参照
82
3.Stable Fluids ~移流~ 三次元のsemi-Lagrange法 trilinear補間 表3-3参照
83
3.Stable Fluids ~移流~ 三次元のsemi-Lagrange法 表3-3参照
84
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参照
85
3.Stable Fluids ~拡散~ Stable Fluids : step3 拡散 step3 表3-4参照
86
3.Stable Fluids ~拡散~ 拡散 : 速度場を均一化しようとする効果 表3-4参照
87
3.Stable Fluids ~拡散~ 拡散方程式の概念 (拡散方程式) 場が均一化していく 表3-4参照
88
3.Stable Fluids ~拡散~ 拡散の計算方法 (拡散方程式) 表3-4参照
89
3.Stable Fluids ~拡散~ 拡散の計算方法 表3-4参照
90
3.Stable Fluids ~拡散~ 拡散の計算方法 ラプラシアン は前頁のような行列 で記述可能 表3-4参照
91
3.Stable Fluids ~拡散~ 連立方程式 拡散の計算方法 は と同じ形 要素数nは、非常に大きい (i.e. 三次元の場合n3)
は と同じ形 連立方程式 要素数nは、非常に大きい (i.e. 三次元の場合n3) 表3-4参照
92
3.Stable Fluids ~拡散~ ガウス・ザイデル法 表3-4参照
93
3.Stable Fluids ~拡散~ ガウス・ザイデル法 表3-4参照
94
3.Stable Fluids ~拡散~ ガウス・ザイデル法 右辺 に適当な初期値を設定し、反復計算
右辺 に適当な初期値を設定し、反復計算 収束条件:行列Aの対角成分が0ではない。 行列Aの対角成分が他の成分より大きい 表3-4参照
95
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参照
96
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参照
97
3.Stable Fluids ~拡散~ Stable Fluids : step4 圧力 step4 step4 表3-5参照
98
3.Stable Fluids ~圧力~ 圧力 : 非圧縮条件を満たすように働く力 表3-5参照
99
3.Stable Fluids ~圧力~ 圧力 : 非圧縮条件を満たすように働く力 表3-5参照
100
3.Stable Fluids ~圧力~ 圧力の計算方法 両辺、発散を計算 表3-5参照
101
3.Stable Fluids ~圧力~ 圧力の計算方法 非圧縮条件より 表3-5参照
102
3.Stable Fluids ~圧力~ 圧力の計算方法 圧力のスカラー場 を計算 の勾配を計算し、 から減算 表3-5参照
103
3.Stable Fluids ~圧力~ 圧力の計算方法 拡散と同じく、ラプラシアン は行列 で記述可能 は と同じ形 →ガウス・ザイデル法
拡散と同じく、ラプラシアン は行列 で記述可能 は と同じ形 →ガウス・ザイデル法 表3-5参照
104
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参照
105
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参照
106
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参照
107
3.Stable Fluids ~境界~ 境界の扱い 速度: 境界で速度0 シミュレーションボクセル 圧力: 微分値が0 境界ボクセル
108
3.Stable Fluids ~まとめ~ Navier-Stokes方程式 表3-1参照
109
発表の流れ 1.概要 2.微分 3.Stable Fluids 4.応用 5.まとめ
110
4.応用 ~概要~ 応用 煙 煙の濃度計算 煙の可視化
111
4.応用 ~煙の濃度計算~ 非圧縮流体のNavier-Stokes方程式 煙の方程式 表4参照
112
4.応用 ~煙の濃度計算~ 外力:煙の供給などの外からの影響 表4参照
113
4.応用 ~煙の濃度計算~ 移流:流れに沿って移動する効果 表4参照
114
4.応用 ~煙の濃度計算~ 拡散 : 濃度を均一化しようとする効果 表4参照
115
4.応用 ~煙の濃度計算~ 煙の変化の概念 step2 step3 step1 表4参照
116
4.応用 ~煙の外力~ 煙の変化の概念 step1 表4参照
117
4.応用 ~煙の外力~ 外力の計算方法 表4参照
118
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参照
119
4.応用 ~煙の移流~ 煙の変化の概念 step2 表4参照
120
4.応用 ~煙の移流~ 多次元の移流 →スカラー が速度場 によって移動 表4参照
121
4.応用 ~煙の移流~ 三次元のsemi-Lagrange法 表4参照
122
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参照
123
4.応用 ~煙の拡散~ 煙の変化の概念 step3 表4参照
124
4.応用 ~煙の拡散~ 拡散方程式の概念 (拡散方程式) 場が均一化していく 表4参照
125
4.応用 ~煙の拡散~ 拡散の計算方法 (拡散方程式) 表4参照
126
4.応用 ~煙の拡散~ 拡散の計算方法 は と同じ形 →ガウス・ザイデル法 表4参照
127
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参照
128
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参照
129
4.応用 ~煙の可視化~ 煙の可視化 シミュレーション結果(煙の濃度)は、 ボクセルデータ(ボリュームデータ)
4.応用 ~煙の可視化~ 煙の可視化 シミュレーション結果(煙の濃度)は、 ボクセルデータ(ボリュームデータ) ボリュームレンダリングを行い可視化 レイキャスティング法、スプラッティング法 などを利用
130
4.応用 ~煙の可視化~ レイキャスティング法 Δs screen
131
4.応用 ~煙の可視化~ レイキャスティング法 ボクセルの色C(s3)*不透明度α(s3) *透明度(1-α(s2))*透明度(1-α(s1)) ボクセルの色C(s2)*不透明度α(s2) *透明度(1-α(s1)) ボクセルの色C(s1)*不透明度α(s1)
132
4.応用 ~煙の可視化~ GPUを利用したボリュームレンダリング スライス(ポリゴン)を一定間隔に配置 ボリュームデータをfetchし描画
4.応用 ~煙の可視化~ GPUを利用したボリュームレンダリング スライス(ポリゴン)を一定間隔に配置 ボリュームデータをfetchし描画 alpha blendingを用いて加算
133
1.概要 ~概要~ GPUを利用したボリュームレンダリング
134
4.応用 ~応用~ 応用 煙のシミュレーション 速度場の計算 → 煙の濃度を移流・拡散 火のシミュレーション 速度場の計算
4.応用 ~応用~ 応用 煙のシミュレーション 速度場の計算 → 煙の濃度を移流・拡散 火のシミュレーション 速度場の計算 → 熱・温度を移流・拡散 水のシミュレーション 速度場の計算 → 水表面(水表面からの距離)を移流・拡散
135
発表の流れ 1.概要 2.微分 3.Stable Fluids 4.応用 5.まとめ
136
5.まとめ ~まとめ~ まとめ 流体の基礎理論を解説 非圧縮性流体のNavier-Stokes方程式の説明 ボクセルベースの解法について説明
5.まとめ ~まとめ~ まとめ 流体の基礎理論を解説 非圧縮性流体のNavier-Stokes方程式の説明 ボクセルベースの解法について説明 Stable Fluidsの解説
137
5.まとめ ~まとめ~ 非圧縮性流体のNavier-Stokes方程式 外力 移流 拡散 圧力 +非圧縮条件
138
5.まとめ ~まとめ~ Stable Fluids
139
5.まとめ ~高速化~ 高速化の方向性 GPU、SIMDの利用 大部分は各ボクセル独立→並列化 グリッドサイズの最小化
5.まとめ ~高速化~ 高速化の方向性 GPU、SIMDの利用 大部分は各ボクセル独立→並列化 グリッドサイズの最小化 三次元の処理コストはO(n3)
140
5.まとめ ~最後に~ 質問・ご意見は以下までお寄せ下さい Pyramid HP - http://www.pyramid-inc.net/
5.まとめ ~最後に~ 質問・ご意見は以下までお寄せ下さい Pyramid HP - 近日中にPowerPointファイルをUpします
141
5.まとめ ~参考文献~ 参考文献 Real-Time Fluid Dynamics for Games GPU Gems
5.まとめ ~参考文献~ 参考文献 Real-Time Fluid Dynamics for Games Stam氏自らStable Fluidsを解説 二次元のStable Fluidsのソースコード付き Research/pub.html GPU Gems 二次元のStable Fluidsの解説+GPU実装(38章) GPUを用いたボリュームレンダリングの解説(39章)
142
5.まとめ ~参考文献~ 参考文献(Paper) 今回紹介した大本の論文 Stable Fluids, SIGGRAPH 1999
5.まとめ ~参考文献~ 参考文献(Paper) 今回紹介した大本の論文 Stable Fluids, SIGGRAPH 1999 よりDL可能 煙関係 Visual Simulation of Smoke, SIGGRAPH 2001
143
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
144
5.まとめ ~参考文献~ 参考文献(書籍) Javaによる流体・熱流動の数値シミュレーション
5.まとめ ~参考文献~ 参考文献(書籍) Javaによる流体・熱流動の数値シミュレーション 峯村 吉泰/著 森北出版 ISBN ・基礎から実際のソースコードまで幅広く解説 粒子法 越塚誠一/著 丸善 ISBN ・パーティクルベースの流体解析手法の解説
145
5.まとめ ~参考文献~ 参考文献(Homepage) Ronald Fedkiw氏のHomepage Jos Stam氏のHomepage
5.まとめ ~参考文献~ 参考文献(Homepage) Ronald Fedkiw氏のHomepage Jos Stam氏のHomepage Tim Rowley氏のHomepage(論文リンク集)
146
5.まとめ ~終わり~ ご清聴ありがとうございました
147
6.Appendix ~表1.微分のまとめ~ ・微分 微小区間における傾き ・偏微分 各軸方向の微分
148
6.Appendix ~表1.微分のまとめ~ ・勾配 変化が最も大きい方向を示すベクトル
149
6.Appendix ~表1.微分のまとめ~ 微小空間の流入・流出量の差を表すスカラー ・発散 正ならば、場が対象領域から外部に流出
微小空間の流入・流出量の差を表すスカラー 正ならば、場が対象領域から外部に流出 負ならば、場が外部から対象領域に流入
150
6.Appendix ~表1.微分のまとめ~ 周りとの相対的な差を表すスカラー ・ラプラシアン 大きければマイナス 小さければプラス
周りとの相対的な差を表すスカラー 自分が周りと比べて 大きければマイナス 自分が周りと比べて 小さければプラス
151
6.Appendix ~表2.Navier Stokes~
非圧縮条件
152
6.Appendix ~表2.Stable Fluids~
153
6.Appendix ~記号表~ 表3-1 「Stable Fluidsの概念」までで使用する記号
154
6.Appendix ~記号表~ 表3-2 「step1:外力」で使用する記号
155
6.Appendix ~記号表~ 表3-3 「step2:移流」で使用する記号
156
6.Appendix ~記号表~ 表3-4 「step3:拡散」で使用する記号 x x
157
6.Appendix ~記号表~ 表3-5 「step4:圧力」で使用する記号
158
6.Appendix ~記号表~ 表4 「煙の濃度計算」で使用する記号
Similar presentations
© 2024 slidesplayer.net Inc.
All rights reserved.