Presentation is loading. Please wait.

Presentation is loading. Please wait.

流体の鉄人 ~ゲーム屋さんのための流体入門~ 田村 尚希 株式会社 Pyramid.

Similar presentations


Presentation on theme: "流体の鉄人 ~ゲーム屋さんのための流体入門~ 田村 尚希 株式会社 Pyramid."— Presentation transcript:

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 「煙の濃度計算」で使用する記号


Download ppt "流体の鉄人 ~ゲーム屋さんのための流体入門~ 田村 尚希 株式会社 Pyramid."

Similar presentations


Ads by Google