I'm looking for some information on world space transformations, parameter transformations and pre-transformations. And from what I understand, world space transformations of the object is the product of all three mentioned above, that is if this information applies in general to most or all 3D packages ?
Replies
Models are stored in Model space. I.e. each point is relative to the Model's origin.
World space transformations take model space and multiply it by rotations, scale or translations in any particular order required.
Yes it does apply to all 3D programs but No they don't all work the same way. The order of the transformations differ from software to software, as do the vector directions. E.g. Max is Z up, Maya is Y up, what do you expect to happen to a model with a value of Z when it's imported into Maya? As I mentioned earlier the order of the transformations also matter, do you rotate scale then translate? Or do you translate scale then rotate? Etc. etc. Lots of this is standardized between certain apps or transport formats such as FBX have functions or meta data included that alter the data (such as Max converting Z up to Y up) or inform the target program of a particular matrix order.
Can you be more specific with how in depth you want it?
World Space transformations are just Model Space transformations multiplied by a user specified world matrix, they really are that simple, but if you want to construct one you'll have to delve into Linear Algebra.
In a simple example:
If a user specifies that they want to scale the points twice the size then you would just multiply all of the points positions by 2.
In 2D coordinates, if a point is at 3, 4. Multiplying it by two will move the points to 6, 8, the new world position is 6, 8.
Translation is similar but it's an adding operation. 3, 4 + 0, 1 = 3, 5 the new world position is 3, 5.
Rotation is the same concept but has more complexity since any 3D software worth it's salt is typically using Quaternions which is a whole other beast.
OpenGL documentation/Guides are your best friend for learning this material:
http://www.opengl-tutorial.org/beginners-tutorials/tutorial-3-matrices/
You appear to have a strong grasp of this information; therefore more questions may come soon. In the meantime what exactly are pre-transformations and parameter transformations.
Parameter transformations are what I'm guessing are what transformations the user applies to the object ?
Without knowing if there is any special context my guess is you're right and it just sounds like a user input into a matrix such as telling a vertex to move. I have no idea about pre transformations.