Sign in to follow this  
Tenshi_rdk

Camera/model rotation help !

Recommended Posts

I just cannot get my camera to point the way to the model as i want... At the moment my camera is UNDER my character and if i adjust the up , eye and look at values it just does weird stuff... i want to rotate my model and look at it from the side and upright.like a platform game walking char. this is my matrixes..help me please / Sets up the camera 1000 units back looking at the origin. D3DXMATRIX V; D3DXMatrixIdentity(&V); D3DXVECTOR3 pos(0.0f, 0.0f, -1000.0f); D3DXVECTOR3 up(0.0f, 1.0f, 0.0f); //to rotate VIEW ANGLE D3DXVECTOR3 target(0.0f, 0.0f, 0.0f); D3DXMatrixLookAtLH( &V, &pos, &target, &up ); //FOR SOME REASON THIS DOES NOT WORK ??? //This makes the model rotate Y //D3DXMatrixRotationY( &V, D3DXToRadian(fAngle)); //This makes the model rotate X //D3DXMatrixRotationX( &V, D3DXToRadian(fAngle2)); //This makes the model rotate Z //D3DXMatrixRotationZ( &V, D3DXToRadian(fAngle3)); HR(gd3dDevice->SetTransform(D3DTS_WORLD, &V)); HR(gd3dDevice->SetTransform(D3DTS_VIEW, &V)); The middel part of code has no response what so ever.. any clues ?? even id i adjust the angles...

Share this post


Link to post
Share on other sites
Quote:
The middel part of code has no response what so ever.. any clues ??


Could it be because the middle part is completely commented out? Or is that post-op?

Share this post


Link to post
Share on other sites
D3DXMatrixRotationY(), D3DXMatrixRotationX(), and D3DXMatrixRotationZ() replace the contents of the matrix you pass to them.

You need to multiply/concatenate the matrices:


D3DXMATRIX v;
D3DXMatrixLookAtLH( &v, &pos, &target, &up );

D3DXMATRIX temp;
D3DXMatrixRotationY( &temp, D3DXToRadian(fAngle));
D3DXMatrixMultiply( &v, &v, &temp );

D3DXMatrixRotationX( &temp, D3DXToRadian(fAngle2));
D3DXMatrixMultiply( &v, &v, &temp );

D3DXMatrixRotationZ( &temp, D3DXToRadian(fAngle3));
D3DXMatrixMultiply( &v, &v, &temp );


Beware that matrix multiplication isn't commutative (A*B will give a different result to B*A) so you may need to reverse the order of the last two arguments for each D3DXMatrixMultiply() depending on what you're trying to achieve.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this