#author("2018-09-13T14:08:40+09:00","default:pbcglab_user","pbcglab_user") #author("2020-03-13T12:37:45+09:00","default:pbcglab_user","pbcglab_user") 物理シミュレーションに関して ---- #contents ---- **物理シミュレーションの手法 [#b8e59d51] -[[粒子法]](Particle Method) -[[有限差分法]](FDM : Finite Difference Method) -[[有限体積法]](FVM : Finite Volume Method) -[[有限要素法]](FEM : Finite Element Method) -[[境界要素法]](BEM : Boundary Element Method) -[[移流法]](Advection Method) *物理シミュレーションの種類 [#k9425654] -剛体シミュレーション --衝突判定(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) -植物シミュレーション -侵食,風化シミュレーション -その他 --磁石,磁性流体 *物理シミュレーションエンジン[#xdca643b] -[[ODE]] -[[Bullet:http://bulletphysics.org/wordpress/]] ([[公式Wiki:http://bulletphysics.org/mediawiki-1.5.8/index.php/Main_Page]], [[マニュアル日本語訳:http://bulletjpn.web.fc2.com/]]) -[[DynaMo - Dynamic Motion library:http://home.iae.nl/users/starcat/dynamo/]] - ODEと同じく物理シミュレーションライブラリ.衝突検出にはSOLIDを使用している. -[[SOLID:http://www.dtecta.com/main/index.html]] - 3D衝突検出ライブラリ. -[[OPCODE:http://www.codercorner.com/Opcode.htm]] - 3D衝突検出ライブラリ. -[[Processing:http://processing.org/]] - 画像・アニメーション・サウンドをプログラミングしたい人のためのオープンソースプログラミング言語・環境.基本的な3Dエンジンの機能にさらに画像処理,バネ-質点モデル・CA・流体(まだ最適化されてないので低速)・パーティクルシステム・QuickTime動画入力・PDF出力なども備えている. *物理シミュレーションに使えそうなソフトウェア/ライブラリ [#g742b3f2] -[[Gmsh:http://gmsh.info/]] - FEM用に四面体メッシュを作ってくれるソフトウェア(SDKあり).任意形状で中が詰まった粒子群を作りたい場合などにも使えそう. -[[DualSPHysics:http://dual.sphysics.org/]] - SPH法を用いた流れのシミュレーションライブラリ. *物理シミュレーション+3DCGのプログラム作成・結果動画出力までの流れ [#ea9f3cb1] +3Dモデルの用意 --[[3Dファイルフォーマットの種類]] --blenderなどの3Dモデラーソフトで作成 --フリー素材サイトからダウンロード --研究用によく用いられるモデル ---Teapot ---Bunny ---Dragon ---Armadillo ---Happy Budda ---Lucy +3Dモデルの読み込み --[[3Dモデルファイルの入出力]] +3Dモデルをシミュレーション用の表現形式(ボクセル,パーティクル,陰関数など)に変換 +物理シミュレーション +結果のレンダリング(OpenGL, Ray-tracing, Volume rendering etc.) --GLSLを使った各種レンダリングについては[[GLSL]]参照 +結果の出力 --画像を連番で出力 -> 8へ --3Dモデルデータ(表面メッシュなど)の出力 : [[3Dモデルファイルの入出力]] -> 7へ +シーンを設定し3Dモデルデータをレンダリング --POV-Rayなど +連番画像から素材動画を生成 --[[Video Editing]]参照 +動画を編集 --Adobe Premiere --Javie --AviUtl - [[AviUtlで研究結果の動画を作成する]] *リンク [#sef13e18] -[[Physics-Based Animation:http://animationphysics.wordpress.com/]] 物理ベースのCGに関する研究について -[[Real Time Physics:http://www.matthiasmueller.info/realtimephysics/index.html]] SIGGRAPH2008 Coursesの一つ.資料,スライド,サンプルコードなど. -[[Real Time Physics(ACM Digital Library):http://portal.acm.org/citation.cfm?id=1401132.1401245&coll=portal&dl=ACM&CFID=16290024&CFTOKEN=5745535]] 上記"Real Time Physics"のACM Digital Libraryのページ.コースの動画がある. -[[SPlisHSPlasH:https://github.com/InteractiveComputerGraphics/SPlisHSPlasH]] SPH法のソースコード.CG分野で使われるSPH法のほとんどを網羅している(WCSPH,PCISPH,IISPH,DFSPH,PBF,PF).境界粒子や表面張力,多層流体なども扱える. -[[PositionBasedDynamics:https://github.com/InteractiveComputerGraphics/PositionBasedDynamics]] ↑と同じグループによるPBDのソースコード.弾性体,剛体,流体(PBF),ロッドなど様々なPBDの実装が含まれる. -[[Fluid Engine Dev - Jet:https://github.com/doyubkim/fluid-engine-dev]] 「Fluid Engine Development」というCG,ゲーム向けの流体シミュレーションの本のソースコード.粒子法(SPH,PCISPH),格子法(レベルセット法(FMM含む))の他に,PIC,FLIP,APICといった両者のハイブリッド手法のコードも含まれる.