# garrus

Member

6

113 Neutral

• Rank
Newbie
1. ## local vs world coordinate system for object manipulation

Thanks Nercury ^ meant simply the transpose (to get a column vector from [0 0 -1] )   To store each rotation, i'd imagine you mantain 3 angles for the object, which you modify according to user input, and from these you transform the unit vectors of the axes  ( [1 0 0] , [0 1 0] , [0 0 1])  to get the transformed orientation.   Edit: I guess I should have answered YES. I am actually not sure if maintaining transformation matrix with both rotation and translation for EVERY object has any benefits versus simply calling glTranslate, glRotate.   I meant, keeping such a matrix for every object, and calling glMatrixMult before drawing the object. If you didn't do this, wouldn't you need to call a glTranslate and 3 glRotates for every object either way?
2. ## local vs world coordinate system for object manipulation

Look into my previous post's history, it may give you some ideas.   Thanks, that helped   So is the following correct? So If i want to move an object to the direction it's facing, since i don't have a "forward" vector explicitly, i assume that all objects begin facing a certain direciton.   For example -Z direction, and the current direction they're facing is [0 0 -1]^T times their rotation matrix?   Is this how it's done generally? If so, isn't it processor-intensive to compute all orientations from this?
3. ## local vs world coordinate system for object manipulation

So i mantain,say,a 4x4 matrix to store the object's orientation and displacement , edit that matrix to rotate/move the object, and glRotate,glTranslate accordingly before drawing the object?
4. ## local vs world coordinate system for object manipulation

Thanks for the reply! Yeah, i know about matrices  :) , but as i'm having problems due to doing everything in world space, using a left,forward..etc vector to perform rotations and displacements for each objects, as i unsuccessfully inquired about here.   So i thought that it'd be easier doing the above around the (local object axes, and then simply transforming them to world space representation.         Isn't that a single translation,using the object's position?
5. ## local vs world coordinate system for object manipulation

I used to do everything using vectors defined in the world coordinate system, but i'm reading up more and more about manipulating objects in their local coordinates. For example, define every object looking towards the + Z axis, and the up direction the +Y axis, so as to simplify actions like "move forward" or "jump".   Do you have any tips/material/advice on how that's implemented?   I'm guessing i'll have to center the object to the world as mentioned above to begin with?
6. ## rotation around left,up vector messed up (C++,openGL)

Hello. I am implementing rotation around the up,left vectors of an object in the following way, which for some reason works only individually. That is, i can rotate perfectly fine around up but after that, if i try rotation around left everything gets messed up. Same if i rotate around left vector,and then try rotating around up.   Could you tell me if the following general method is correct?   vectors up,left,forward, float arrays with x,y,z components. For example, if i want to rotate at an angle ANG, around UP (turn left/right).   1. I get the angles of the UP vector from XZ plane and the YZ plane.     Rotating the UP with these angles around the proper axes would align it with the Z axis. 2. I perform these rotations to all the vectors except UP. 3. I perfom the desired rotation with ANG, around Z. 4. I perform the opposite rotations in (2)  (again,all vectors but UP),so only the desired rotation "remains".   I could just use glRotate to visualize the rotations, but i want the forward,etc vectors as information to where the object is looking at. Thanks in advance.   (this forum looks awesome )