0

ベクトルの 3D モデルがあり、Collada 仕様に従って一連の加重変換行列を適用し、モデルをアニメーション化しています。アニメーションはうまく機能しますが、マトリックスのスケーリング情報がすべて同一であり、重みがすべて 1.0 になることを確認したにもかかわらず、モデルがスケーリングされています。また、スキニング中に射影行列を 2 回適用していないことも確認しました。

最後に、スキニング コードをバイパスすると、モデルが適切にスケーリングされることを確認しました。

では、モデルのスケーリング (~0.5) の原因について明らかなことはありますか?

関連するシェーダーコードは次のとおりです。

vec3 pos = vec4( 0.0, 0.0, 0.0 );
for( int j = 0; j < 4; j++ )
{
    float weight = weights[j];
    pos += (jointMats[j] * (jointInvMats[j] * inpos)) * weight;
}

[編集] 以下のコメントの Christian と Andreas のおかげで、適切な行列/頂点乗算を反映するようにコードが変更されました。ただし、元の問題は残ります。

4

0 に答える 0