「物理演算エンジン」の版間の差分
imported>Administrator |
Administrator (トーク | 投稿記録) 編集の要約なし |
||
| 2行目: | 2行目: | ||
==概要== | ==概要== | ||
3DCGの品質向上に伴い物体の動きも現実的な挙動が求められるようになってきた。そうした需要を満たすために登場したのが物理演算エンジンである。 | |||
既存の3Dモデルに「重さ」や「硬さ」などのパラメーターを持たせ、物理演算エンジンに投げ込み、「何ミリ秒進む」などという命令を実行すると、その時点における物体間の衝突や移動先などを自動計算してくれるというものである。物理演算エンジンを使うだけの[[プログラマー]]は挙動について深く考える必要がなくなる。 | |||
物理演算エンジンのほとんどは[[プログラム]]などに組み込む[[ミドルウェア]]([[ライブラリ]])である。稀に[[スタンドアロン]]で動く[[ソフトウェア]]もある。スタンドアロン製品は[[ロボコン]]に出ているような[[ロボット]]の開発者なんかが設計段階の大雑把なシミュレーションに使っているらしい。 | |||
=== 非リアルタイムとリアルタイム === | |||
物理演算エンジンとひとことでいっても、映像作品向けのリアリティを追求したものと、[[ゲーム]]向けの物理法則を無視して派手に作用するものがある。 | |||
前者はリアルタイム性が求められないため分散処理などへの対応が進んでいる。[[データ]]を複数の[[コンピューター]]に分散配置して一気に演算を行うため、データ分配に時間がかかるため瞬発力はないが、膨大な演算能力を割り当てることができる。いわゆる[[スーパーコンピューター]]などを使う方式だ。 | |||
一方、後者のゲーム向け物理演算エンジンは1フレームの処理時間(60fpsであれば16ミリ秒)の一部しか使えない。1フレーム中には物理演算以外の他の処理もあるので物理演算に割り当てられるのはせいぜい半分の8ミリ秒程度であろう。そのため大胆な近似モデル(それらしい挙動になるざっくり演算)が採用されているのが一般的である。 | |||
一昔前の[[ゲーム]]で多様された[[Havok]]など一部のライブラリでは放送用とゲーム用の演算方式を設定で簡単に切り替えられる。 | |||
[[ググる]]と[[ゲームエンジン]]系の情報は豊富にある。日本語による情報は少ないため[[検索キーワード]]は[[英語]] | == 検索キーワード == | ||
[[ググる]]と[[ゲームエンジン]]系の情報は豊富にある。日本語による情報は少ないため[[検索キーワード]]は[[英語]]の「physics」を使うと捗る。 | |||
==主な物理演算エンジン== | ==主な物理演算エンジン== | ||
| 21行目: | 31行目: | ||
===三大物理演算エンジン=== | ===三大物理演算エンジン=== | ||
三大物理演算エンジンは半導体メーカーの資金援助が色濃い。 | 三大物理演算エンジンは半導体メーカーの資金援助が色濃い。 | ||
*[[PhysX]] | *[[PhysX]] | ||
| 31行目: | 40行目: | ||
===.NET Framework向けライブラリ=== | ===.NET Framework向けライブラリ=== | ||
この項目は[[Xamarin.Mac]]および[[Xamarin.Android]]における[[MonoGame]]で使える物理演算エンジンを調査するために書いている。よって内容は極端に偏っているし、ざっくり触った程度での大嘘も含まれる。 | |||
;2D | ;2D | ||