|
|
发表于 2008-6-24 00:32:00
|
显示全部楼层
Re:请教tonykee,麻烦再指教一下,仍然是换装相关的问题~~
////找到手的关键帧,然后插上到,渲染,一把倒就在手上了
//D3DXMATRIX mat;
//m_pPlayer->GetSkinMesh()->GetFrameMatrix(NULL,"Bip01_R_Hand",&mat);
//m_pSword->SetTransForm(&mat);
//骨骼帧的位置要相应的传递
//m_pSword->SetPosition(mat._41,mat._42,mat._43);//m_pSword是武器的模型对象
//m_pSword->m_mTransform._41=mat._41;
//m_pSword->m_mTransform._42=mat._42;
//m_pSword->m_mTransform._43=mat._43;
//m_pSword->Render();
//找到节点的矩阵
LRESULT GetFrameMatrix(LPD3DXFRAME pFrameBase, char *strFrameName,D3DMATRIX *pMat)
{
D3DXFRAME *pFrame ;
if(pFrameBase!=NULL)
pFrame = pFrameBase;
else
pFrame = m_pFrameRoot;
if(pFrame->Name!=NULL && 0==strcmp(pFrame->Name,strFrameName))
{
*pMat=((D3DXFRAME_DERIVED*)pFrame)->CombinedTransformationMatrix;
return S_OK;
}
if (pFrame->pFrameSibling != NULL)
{
if(S_OK== GetFrameMatrix(pFrame->pFrameSibling,strFrameName,pMat))
return S_OK;
}
if (pFrame->pFrameFirstChild != NULL)
{
if(S_OK== GetFrameMatrix(pFrame->pFrameFirstChild,strFrameName,pMat))
return S_OK;
}
return E_FAIL;
} |
|