rigidchips-lib / rigidchips

23 stars 7 forks source link

物理演算を高速化したい #132

Open lempiji opened 6 years ago

lempiji commented 6 years ago

優先度は未定ですが、物理演算は直接FPSに効くのでできる限りの高速化をしたい、という話題です。

今もそれなりに速度は出ていますが、今後考えられるアイデアをいくつか記録しておきます。 他にもアイデアがあればコメントや編集をお願いします。

現状

手法

tanitta commented 6 years ago

分離チップ(シミュレーションアイランド)毎の並列化については物理エンジンの並列化としてよく使われるアプローチになります.この記事にもありますが,一般に相互作用が多い用途ではあまりパフォーマンスが改善しないと言われています,ただRigidChipsの場合,アイランド間の相互作用が無いことが基本的に(後述)保証されているため,他のエンジンよりもうまく高速化できるかもしれません.

シミュレーションアイランド間の相互作用については,例外として,Ballに2つのアイランドが衝突してる場合に発生します.これを考慮すると,接触関係のグラフを生成するコストが生じるためパフォーマンスが落ちるかと思います.対策として一つもボールが存在しない場合は分離チップ並列化を有効にする等が手軽そうです.