スキンメッシュアニメーション3 / magicien 

だんだん完成に近づいてきた...

結局、ボーン毎にグループ化して、グループ毎に描画、ということにしました。
GPUで頂点ブレンディングするとなると、頂点の座標やら法線やらはJS側で変更する必要がないので、
初期化のときに一度バッファにデータを入力すれば良いわけです。
計算量も減るし、メモリにデータが載れば、データ転送量も減って、高速化に大きな効果が。

実際に実装してみて、どれくらい速くなったかというと、約1.5倍。
前々回、Safariでfpsが20くらいと書きましたが、これは関数呼び出しの周期を50msにしていたせいでした。
周期を10msにしたところ、実際には25fpsくらい出ました。
で、頂点ブレンディングをGPU側で実装したところ、40fpsくらいに!
とはいえ、モデルを1つしか表示していないのと、
ボーンの影響とは別の頂点のモーフィングを実装する必要があるので、
描画速度としては、まだまだといったところです。
無駄な処理や冗長な処理が何か所かあるので、そこらへんを削ればもっと速くなるかと。
う〜ん、3月中に完成、公開したい...


2010/03/24(Wed) 01:19:06