【C++】 DirectX初心者質問スレ Part28 【C】
■ このスレッドは過去ログ倉庫に格納されています
0237デフォルトの名無しさん
2010/04/08(木) 16:21:52DirectXサンプルのスキンメッシュをいじり倒して、概ね理解はできてきたと思うのですが、1点気になることがあります。
D3DXMESHCONTAINER_DERIVED::pBoneOffsetMatrices
これなのですが、オフセット行列をコピーしているようなのですが、そのコピー箇所を引用すると
// get each of the bone offset matrices so that we don't need to get them later
for (iBone = 0; iBone < cBones; iBone++)
{
pMeshContainer->pBoneOffsetMatrices[iBone] = *(pMeshContainer->pSkinInfo->GetBoneOffsetMatrix(iBone));
}
こうなっています。
コメントを訳すと「後でこれらが必要にならないように、各ボーンオフセット行列を取得しておく」と読めるのですが、
別にpSkinInfoは解放せず持ち続けるようです。
pBoneOffsetMatrices自体は確かに描画の時に使っているのですが、別にその時
*(pMeshContainer->pSkinInfo->GetBoneOffsetMatrix(iBone))
を使えばいいのではないかと思います。
pSkinInfo->GetBoneOffsetMatrixでとれる行列は、何かしらが原因で変化してしまったりするのでしょうか?
(変化してしまうから、変化する前に控えをとっているのでしょうか?)
それとも、GetBoneOffsetMatrixの呼び出しが超遅いとかでしょうか?
■ このスレッドは過去ログ倉庫に格納されています