About quaternions.

Started by
4 comments, last by shakazed 21 years, 8 months ago
Does anyone have some working code in how to implement quaternions to rotate the camera. (In Direct3D that is) I´ve read some things about quats but I don´t know how to implement them. Any help appreciated. Bad Monkey Productions
Advertisement

  D3DXQUATERNION qR;  D3DXQuaternionRotationYawPitchRoll(&qR, m_fYaw, m_fPitch, m_fRoll);  D3DXMatrixAffineTransformation(&m_matOrientation, 1.25f, NULL, &qR, &m_vPosition );  D3DXMatrixInverse( &m_matView, NULL, &m_matOrientation );  


Then m_matView you use for your view matrix.

--Helicon56.
Thank you very much! I really don´t know jacks-bhind about quats so can I do like this...


  D3DXMATRIX m_matOrientation; D3DXQUATERNION qR;  D3DXQuaternionRotationYawPitchRoll(&qR, m_fYaw, m_fPitch, m_fRoll);  D3DXMatrixAffineTransformation(&m_matOrientation, 1.25f, NULL, &qR, &m_vPosition );  D3DXMatrixInverse( &m_matView, NULL, &m_matOrientation );  iD3DDevice8->SetTransform(D3DTS_VIEW, m_matView);  


...to rotate my camera? Is m_vPosition the camera´s lookat position?




Bad Monkey Productions
Yeah that should work fine. m_vPosition is the position of the camera in the world. You specify it''s look at point by changing it''s yaw pitch and roll. Just play around with it for a while and you''ll figure it out.

--Helicon56.
Thank you man!!! Really appreciated!



Bad Monkey Productions
Hmm, I´m trying to use this code to rotate it but nothing happends when I do.


  	D3DXMATRIX m_matOrientation; 	D3DXQUATERNION qR;  	D3DXQuaternionRotationYawPitchRoll(&qR, 0.0f, 0.0f, 0.0f);  	D3DXMatrixAffineTransformation(&m_matOrientation, 1.25f, NULL, &qR, &D3DXVECTOR3(0.0f,0.0f,0.0f));  	D3DXMatrixInverse( &m_matView, NULL, &m_matOrientation );  	m_iD3DDevice8->SetTransform(D3DTS_VIEW, &matView);  


Any ideas on what I´m doing wrong. I´m trying to render a textured quad, when i use the ordinary lookat function it works just fine.



Bad Monkey Productions

This topic is closed to new replies.

Advertisement