모든 메쉬들에 로컬좌표를 월드좌표로 Transform하는 TM에
부모 오브젝트의 Inverse TM을 곱해주어서
부모 기준의 로컬 TM을 구할때
부모오브젝트의 역행렬은 바로 위의 부모에만 한정되는건가요?
if( HasParent() )
{
D3DXMATRIX matParentInv;
D3DXMatrixInverse( &matParentInv, 0, &pParent->parentMesh->matTM );
D3DXMatrixMultiply( &matRelativity, &matTM, &matParentInv );
}
여기서 부모메쉬의 matTM은 ASE에서 뽑아온 부모메쉬의 월드행렬인데 이렇게해서
나중에 찍을때
if( HasParent() )
{
matWorld = matAni * matRelativity * pParent->parentMesh->matWorld;
}
else
{
matWorld = matAni * matTM;
}
이런식으로 해줬는데 메쉬가 이상하게 나오네요...
답변부탁드립니다.
ASE를 이용한 본애니메이션을 할때
Moderator: 류광
바로 위 부모만 하는것이 아니고...
부모의 부모의 부모의......
부모가 있으면 그 위에 모든 것을 다 해주어야만 됩니다.
역행렬도 그렇고 나중에 애니를 곱할대도 그렇고.
그래서 매트릭스에 누적식을 사용하는거죠. ( 아니면 느려터진 매트릭스를 뭣 때문에... )
부모가 있으면 그 위에 모든 것을 다 해주어야만 됩니다.
역행렬도 그렇고 나중에 애니를 곱할대도 그렇고.
그래서 매트릭스에 누적식을 사용하는거죠. ( 아니면 느려터진 매트릭스를 뭣 때문에... )