Sign in to follow this  

[DX9] D3DXVec3Unproject

This topic is 2832 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hi, For a specific implementation, I am projecting an object from Object space (EDIT: maybe this is where I am getting it wrong, since Im not sure if this is the position in World Space or Local/Object Space, which would the just be 0, 0, 0 ) to Screen space using D3DXVec3Project and a perspective projection matrix. I am then projecting the Screen space coordinates back to Object space using D3DXVec3Unproject and an orthographic projection matrix. I am not 100% sure that I am giving the functions the correct parameters. Could someone help me with this....
D3DXVECTOR3 l_d3dvGizmoPositionInScreenSpace( 0.0f, 0.0f, 0.0f );
D3DXVECTOR3 l_d3dvGizmoPositionInOrthoWorldSpace( 0.0f, 0.0f, 0.0f );


D3DXVec3Project( &l_d3dvGizmoPositionInScreenSpace, // Out - Screen Space Position/Coordinates
		 &m_vGizmoWorldPosition, // Gizmo Position in world space
		 &GetViewport( D3DVPT_PERSPECTIVE )->m_d3dViewPort, //Viewport rendered in
		 &l_mPerspectiveProjectionMatrix, // The perspective matrix projected with
		 &l_mViewMatrix, // the view matrix of the "camera" in the viewport
		 &m_mGizmoWorldMatrix() ); // the world transformation matrix of the gizmo


D3DXVec3Unproject( &l_d3dvGizmoPositionInOrthoWorldSpace, // Out - World space coordinates
		   &l_d3dvGizmoPositionInScreenSpace, // Gizmo Position in Screen space
		   &GetViewport( D3DVPT_PERSPECTIVE )->m_d3dViewPort,//Viewport rendered in
		   &l_mOrthographicProjectionMatrix(), // The perspective matrix (un)projected with
		   &l_mViewMatrix, //the view matrix of the "camera" in the viewport
		   &l_d3dmScreenSpaceMatrix); // And here I am not sure what matrix should be used??



Share this post


Link to post
Share on other sites
Well, my main fault was that the 2nd parameter of D3DXVec3Project should have been the gizmo's local space position, which is always (0, 0, 0) in my case.

Then the second fault was that the World matrix for D3DXVec3Unproject had to be a Identity matrix.

When I corrected these 2 mistakes it works perfectly!

Share this post


Link to post
Share on other sites

This topic is 2832 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

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