#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といった両者のハイブリッド手法のコードも含まれる.



トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS