物理シミュレーションに関して
物理シミュレーションの手法†
- 粒子法(Particle Method)
- 有限差分法(FDM : Finite Difference Method)
- 有限体積法(FVM : Finite Volume Method)
- 有限要素法(FEM : Finite Element Method)
- 境界要素法(BEM : Boundary Element Method)
物理シミュレーションの種類†
- 剛体シミュレーション
- 衝突判定(collision detection)
- 摩擦(friction)
- 粒状物体(granular material)
- 変形物体シミュレーション
- 粘弾性体(viscoelastic body)
- 布(cloth)
- 髪,毛(hair, fur)
- 弾性棒(elastic rod)
- 破壊(fracture)
- 可展面(developable surface)
- 筋肉(muscle)
- 流体シミュレーション
- 非圧縮性流体
- 気体(煙,雲など) (gas)
- 液体(水など) (liquid)
- 粘性流体(viscoelastic fluid)
- 圧縮性流体
- 爆発(explosion)
- 衝撃波(shock wave)
- 乱流(turbulent flow)
- 気泡(bubble)
- 泡(foam)
- 波(wave)
- 熱(流体)シミュレーション
- 炎(fire)
- 氷解(ice melting)
- 沸騰(boiling)
- 植物シミュレーション
- 侵食,風化シミュレーション
- その他
物理シミュレーションエンジン†
- Processing - 画像・アニメーション・サウンドをプログラミングしたい人のためのオープンソースプログラミング言語・環境.基本的な3Dエンジンの機能にさらに画像処理,バネ-質点モデル・CA・流体(まだ最適化されてないので低速)・パーティクルシステム・QuickTime動画入力・PDF出力なども備えている.
物理シミュレーションに使えそうなソフトウェア/ライブラリ†
- Gmsh - FEM用に四面体メッシュを作ってくれるソフトウェア(SDKあり).任意形状で中が詰まった粒子群を作りたい場合などにも使えそう.
- DualSPHysics - SPH法を用いた流れのシミュレーションライブラリ.
物理シミュレーション+3DCGのプログラム作成・結果動画出力までの流れ†
- 3Dモデルの用意
- 3Dファイルフォーマットの種類
- blenderなどの3Dモデラーソフトで作成
- フリー素材サイトからダウンロード
- 研究用によく用いられるモデル
- Teapot
- Bunny
- Dragon
- Armadillo
- Happy Budda
- Lucy
- 3Dモデルの読み込み
- 3Dモデルをシミュレーション用の表現形式(ボクセル,パーティクル,陰関数など)に変換
- 物理シミュレーション
- 結果のレンダリング(OpenGL, Ray-tracing, Volume rendering etc.)
- GLSLを使った各種レンダリングについてはGLSL参照
- 結果の出力
- シーンを設定し3Dモデルデータをレンダリング
- 連番画像から素材動画を生成
- 動画を編集
リンク†
- SPlisHSPlasH
SPH法のソースコード.CG分野で使われるSPH法のほとんどを網羅している(WCSPH,PCISPH,IISPH,DFSPH,PBF,PF).境界粒子や表面張力,多層流体なども扱える.
- PositionBasedDynamics
↑と同じグループによるPBDのソースコード.弾性体,剛体,流体(PBF),ロッドなど様々なPBDの実装が含まれる.
- Fluid Engine Dev - Jet
「Fluid Engine Development」というCG,ゲーム向けの流体シミュレーションの本のソースコード.粒子法(SPH,PCISPH),格子法(レベルセット法(FMM含む))の他に,PIC,FLIP,APICといった両者のハイブリッド手法のコードも含まれる.
|