Jump to content

  • Log In with Google      Sign In   
  • Create Account


blah! not another d3d problem!


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
6 replies to this topic

#1 AlexM   Members   -  Reputation: 122

Like
Likes
Like

Posted 23 October 1999 - 09:13 AM

i'm doing view trans in d3d7, and it is having the same effect as the world trans. well it ain't meant to! what's wrong?
matView = mat; //mat is identity
matView._43 = 10.0f;
matView._11 = COS(xzangle);
matView._13 = -SIN(xzangle);
matView._31 = SIN(xzangle);
matView._33 = COS(xzangle);
lpd3ddev->SetTransform(D3DTRANSFORMSTATE_VIEW, &matView )
i just have one triangle in the list and it starts ahead of the cam, along z-axis, then it's supposed to whirl around me, but it just sits there and spins around the y-ax, like in world trans. HELP!
and also, i had to retype this 3 times, because sometimes when i hit the delete key it kicks me back to the messboard. any ideas?

Sponsor:

#2 Anonymous Poster_Anonymous Poster_*   Guests   -  Reputation:

Likes

Posted 22 October 1999 - 07:35 PM

HRESULT
SetViewMatrix(
D3DMATRIX& mat, // matrix to receive result
D3DVECTOR& vFrom, // initial point
D3DVECTOR& vAt, // point to look at
D3DVECTOR& vWorldUp ); // which way is up? D3DVECTOR(0,1,0);

#3 AlexM   Members   -  Reputation: 122

Like
Likes
Like

Posted 22 October 1999 - 09:27 PM

well, it worked, but this hurts my do it all by yourself feelings, you know. any ideas on why the above didn't work out?
Thanks for your help!

#4 Pseudo   Members   -  Reputation: 100

Like
Likes
Like

Posted 23 October 1999 - 05:40 AM

SetViewMatrix sucks ass. it is better to just have a camera location, and a direction, and then setup the view matrix by translating and rotating in the oposite direction. The reason that the view matrix seemed to do the same thing as the world matrix is because it is the same thing. D3D just seperates them for your organization. it takes the vertex you give it, multiplies it by the world matrix, then the view, and then the projection. therefore, they only do different things if you set the up differently. Making the world viewed from some location and rotation, is the same thing as rotating everything in the world in the opposite location, and rotation. Tell me if this makes sense, cause I don't know if I explained it well.

#5 AlexM   Members   -  Reputation: 122

Like
Likes
Like

Posted 23 October 1999 - 07:19 AM

yes that makes absolute sense, the view trans are done on the new vertices produced by the world trans, so there shouldn't be any problems, the rotation in view trans should be around the camera y-axis. but my problem is that is does so around the center of the model, like world trans. sure they are the same matrices, but one is done after the other takes effect, right? the setviewmatrix does the same thing that i want to, but obviously it got something figured i don't. later.

#6 AlexM   Members   -  Reputation: 122

Like
Likes
Like

Posted 23 October 1999 - 08:01 AM

nevermind, i figured why it didn't work. i set the translation and rotation of the matrix directly, without concatenating them...

Thanks for your help people!


#7 AlexM   Members   -  Reputation: 122

Like
Likes
Like

Posted 23 October 1999 - 09:13 AM

now another problem, i'm rotating the view vertically and hor, 360 360:
//vFroms is const, vUps is 0,1,0
//vAt is the look-at point for SetViewMat
vAt.x = (float)(SIN(xzangle)+cam.x);
vAt.y = (float)(SIN(verangle)+cam.y);
vAt.z = (float)(COS(xzangle)+cam.z);
D3DUtil_SetViewMatrix(matViews,vFroms,vAts,vUps);
but this results in the triangle bouncing up and down when i look up past 90 (verangle), and so on, as if z clipping is off, but it is on. horizontally it works fine. i can't figure it out...

[This message has been edited by AlexM (edited October 23, 1999).]





Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS