Jump to content
  • Advertisement
Sign in to follow this  

3D Scale an object in spaces other than local-space

This topic is 2767 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

I've writed code for manipulating and transforming objects with on-scene manipulators like 3dsmax, maya ecc...
The translation and rotation work well in local and world spaces, but I can't figure out the scaling from a world-space manipulator.

The transform of an object is splitted in three fields:

private Vector3 m_translation;
private Quaternion m_rotation;
private Vector3 m_scale;

a final transform matrix is maded this way:

public Matrix Transform
return Matrix.CreateScale(m_scale) *
Matrix.CreateFromQuaternion(m_rotation) *

Now, when I scale an object with a local-space manipulator the result is correct,
when I scale an object with a world-space manipulator the result is wrong.

- I rotate an object for example by 45° around the vertical axis (Y axis)
- I set the manipulator mode to world-space, so the manipulator axes are now parallel to world-space basis vectors

scaling along X axis I'm aspect that the scaling vector must show some values on X and Z components (due to previous rotation) and the object must "slide" along the world X axis, but the object scale in some strange way.

This can depend to scale-rotaton-translation sequence? i must change sequence?
It's always possible to scale an object with values specified in another than local-space?

Thanks in advance for the help...and sorry for the english smile.png

A last note: I'm using XNA 4.0, NET 4.0 and C#

Share this post

Link to post
Share on other sites
Sign in to follow this  

  • Advertisement

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!