0

かなり似た質問がいくつかあるようですが、それらは主にパフォーマンスに関するものです。私が現在持っているものを頂点シェーダーに実装する方法について誰かが説明する時間をとってくれれば、非常に感謝しています(タイトルが示すように、アニメーションの場合)。

以下を抽出する単純な .FBX ファイルリーダーがあります。

頂点座標 (X、Y、Z);

頂点インデックス;

通常の座標 (X、Y、Z);

骨に関する限り:

ボーン名 ボーンに接続された頂点のインデックス。

各頂点の重み。

ボーンの 4x4 行列配列。(これがどのように配置されているかわからないので、説明してください! マトリックスは 1 つの端の位置しか保持していませんか?)


助けてください!

4

1 に答える 1

1

いくつかのものが欠けている可能性があるようです。最も顕著なのは、骨の階層です。

通常の動作方法は、ルート ノードがあり、その変換が次のレベルの「ボーン」に伝播し、その変換が伝播し、「リーフ」ボーンまたは子のないボーンに到達するまで続きます。この変換チェーンは、行列乗算を使用して行われます。

頂点を変換するには、いくつかの方法があります。事前に決定され、通常は 3dsmax などの 3D アプリケーションから読み込まれる「影響」を使用して実行されることもあります。

これを行うには、単純で簡単な別の方法があります。頂点からボーン ノードまでの距離を計算するだけです。ボーンの変形の影響は、この距離に直接関係しています。

あなたが話している4x4マトリックスは、単なる位置以上のものを保持しています。回転データも保持します。スケーリング データも保持できる可能性がありますが、これは通常、スキニング/ボーン アプリケーションでは使用されません。

オーケストラがうまく一緒に演奏するには、行列の数学/座標系を完全に理解する必要があります。ゲーム プログラミングのための 3D 数学に関する本を手に入れたいと思います。その重量に値する本には、このトピックに専念するセクション全体があります。

于 2013-07-16T20:53:55.020 に答える