Home Technical Talk

transformations in 3D

CreativeSheep
polycounter lvl 8
Offline / Send Message
CreativeSheep polycounter lvl 8
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

  • Axi5
    Options
    Offline / Send Message
    Axi5 interpolator
    Not sure where you're getting parameter transformations and pre-transformations.

    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.
  • CreativeSheep
    Options
    Offline / Send Message
    CreativeSheep polycounter lvl 8
    I know that, more in-depth is what I want.
  • Axi5
    Options
    Offline / Send Message
    Axi5 interpolator
    Okay:

    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/



  • CreativeSheep
    Options
    Offline / Send Message
    CreativeSheep polycounter lvl 8
    Can you be more specific with how in depth you want it?

    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 ?

  • Axi5
    Options
    Offline / Send Message
    Axi5 interpolator
    I have never heard of those terms relating to this before. Where did you hear them may I ask? 

    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. 
  • CreativeSheep
    Options
    Offline / Send Message
    CreativeSheep polycounter lvl 8
    I read the link you supplied, pretty good :smile: From what I was informed the terms I mentioned are all matrices although I can't find any information regarding pre-transformations ?
Sign In or Register to comment.