Dual Quaternion Skinningのテストをしてみました。
http://isg.cs.tcd.ie/projects/DualQuaternions/
>「Skinning with Dual Quaternions」
Dual Quaternionについてはこちらをご覧ください
http://sio29.sakura.ne.jp/metaplg/bonecmd/dualquat_01.divx
http://sio29.sakura.ne.jp/metaplg/bonecmd/dualquat_02.divx
↑はスキニングごとの曲げ具合をテストしたムービーです。
ムービーの内容ですが次のようになっています
DualQuaternion + PivotMove XXXというのは「Skinning with Dual Quaternions」をベースに独自に拡張したアルゴリズムです
1.Linear
… 線形補間、通常のスキニングです。関節の内側も外側もつぶれます
2.DualQuaternion
… 球形補間です。上記の論文をそのまま実装しました。関節はつぶれませんが外側に膨れます
3.DualQuaternion + PivotMove Linear
… DualQuaternionのアルゴリズムにボーンを曲げたときピボットを内側に線形移動することにより外側に膨らむのを抑えてます。
mikotoの実装に一番近いのではと予想します。
4.DualQuaternion + PivotMove Bezie2
… DualQuaternion + PivotMove Linearのアルゴリズムでピボットを内側に移動するとき二次曲線で移動します
若干、内側にへこみますがより自然な曲がり方のような気がします
5.DualQuaternion + PivotMove Bezie3
… DualQuaternion + PivotMove Linearのアルゴリズムでピボットを内側に移動するとき三次曲線で移動します
PivotMove Bezie2よりさらに内側にへこみます。
- Joyful Note -