Quantcast
Channel: GameDev.net
Viewing all articles
Browse latest Browse all 17825

how to understand dxut CDXUTDirectionWidget class

$
0
0
hi, guys, how to understand the math used in CDXUTDirectionWidget ::UpdateLightDir the following code snippet is taken from MS DXTU source code D3DXMATRIX mInvView; D3DXMatrixInverse( &mInvView, NULL, &m_mView ); mInvView._41 = mInvView._42 = mInvView._43 = 0; D3DXMATRIX mLastRotInv; D3DXMatrixInverse( &mLastRotInv, NULL, &m_mRotSnapshot ); D3DXMATRIX mRot = *m_ArcBall.GetRotationMatrix(); m_mRotSnapshot = mRot; // Accumulate the delta of the arcball's rotation in view space. // Note that per-frame delta rotations could be problematic over long periods of time. m_mRot *= m_mView * mLastRotInv * mRot * mInvView; // Since we're accumulating delta rotations, we need to orthonormalize // the matrix to prevent eventual matrix skew D3DXVECTOR3* pXBasis = ( D3DXVECTOR3* )&m_mRot._11; D3DXVECTOR3* pYBasis = ( D3DXVECTOR3* )&m_mRot._21; D3DXVECTOR3* pZBasis = ( D3DXVECTOR3* )&m_mRot._31; D3DXVec3Normalize( pXBasis, pXBasis ); D3DXVec3Cross( pYBasis, pZBasis, pXBasis ); D3DXVec3Normalize( pYBasis, pYBasis ); D3DXVec3Cross( pZBasis, pXBasis, pYBasis ); https://github.com/Microsoft/DXUT/blob/master/Optional/DXUTcamera.cpp

Viewing all articles
Browse latest Browse all 17825

Trending Articles