追記しました。 Frameの要素を使いモデルを変形していきたいです。
分からないこと➀...右上腕をあげたいのですが、そのためのスキニング行列(1部分)は
offsetCTransCTransD*world だそうです。
opengl
1offsetA*TransA*TransB*TransC*TransD*world 2offsetB*TransB*TransC*TransD*world 3offsetC*TransC*TransD*world 4になるそう
http://rudora7.blog81.fc2.com/blog-entry-292.html
このサイトの参考画像が役にたちそうです。
offsetCは44の行列 TransCは44の行列 TransDは4*4の行列なので
スキニング行列が求められたとして、
例えば、頂点が保持するフレーム番号が「6.4.0.1」だとすると各フレームのスキニング行列skin6.skin4.skin0.skin1とします。ウエイトをweight6.weight4.weight0weight1とする。頂点座標をposとすると、
頂点座標
=posskin6weight6+posskin4weight4+posskin0weight0+posskin1weight1
変換後の法線ベクトル
=normalskin6weight6+normalskin4weight4+normalskin0weight4+...
とありこれを、
glVertex();
glNormal();にいれればいいのではないかと予測がたちました。
(引用 3D格闘ゲームプログラミング)<フレーム付きモデルの表示>
初心者ゆえ内容に間違いがあるかもしれないので、真にうけないでください。
glVertex();
glNormal()の考え方はどうでしょうか。
すいません。お願いします。
あなたの回答
tips
プレビュー