partixの基本設計

partixはC++のtemplateを用いたプラットフォーム非依存の
物理エンジンで、レンダリングとは完全に切り離されています。


partixでは物理エンティティはすべて任意形状として扱う
ことになっているので*1、モデルが複雑だとそのぶん演算にも
時間がかかります。が、上で述べたように物理演算とレンダリング
切り離されているので、可能なら単純化したモデルを別に
作ってやれば高速化することが可能なのです。


実際には、簡略化したモデルで物理演算をしたのち、
モデルから姿勢行列*2を取得し、それを
表示行列のワールドトランスフォーム行列
かなにかに代入してやる形になります。


また、partixは非剛体シミュレーションエンジンで、
内部的演算は頂点単位で行っているので、速度的に余裕があるなら
頂点座標をすべてもってきてvertex bufferかなにかに入れてやることも
可能です。

*1:現状で任意形状以外のプリミティブを固定平面くらいしか用意してないだけですけど

*2:「任意軸の拡大縮小を含む行列」と「姿勢のみの行列」の両方が取得可能