1

glTF の githubチュートリアルのスキン セクションを読みましたが、どのように動作するのか理解できませんでしたjointMatrix

チュートリアルでは、次のように定義されています。

jointMatrix(j) =
  globalTransformOfNodeThatTheMeshIsAttachedTo^-1 *
  globalTransformOfJointNode(j) *
  inverseBindMatrixForJoint(j);

globalTransformとキャンセルで迷っています。私の考えでjointMatrixは、次のようなものです

jointMatrix(j) =
  jointSpaceToModelSpace(j) *
  jointTransform(j) *
  modelSpaceToJointSpace(j);

そして頂点シェーダーで

// assume 'joint' is a matrix computed from weighted aggregation of all jointMatrix(j)
vertex_world_space = model-view-proj * joint * vertex_model_space;

私の質問は

  • jointMatrixがそのように定義されているのはなぜですか?
  • 私のバージョンの何が問題になっていますか?
4

1 に答える 1