Jump to content
  • Advertisement
Sign in to follow this  
xissburg

About the inertial tensor matrix

This topic is 4554 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 have some questions about the inertial tensor matrix of an object. Boxes, cylinders, spheres and anothers have a 0 value in the off-diagonal terms of the matrix. What to say about it? does all the convex polyhedra have 0 values in the off-diagonal terms? The diagonal terms 11, 22 and 33 are related to the inertial tensor of x, y and z rotations respectivelly. To what are the off diagonal terms related? xy, xz, yx, yz, zx and zy rotations?!? I don't understand this...what is the axis for these rotations? I cant see them!! I'm using this method to compute the inertial tensor matrix for my objects. But, I have a problem. For example when computing the inertial tensor matrix of a sphere, I should get 0 values for the off-diagonal terms, right? But I'm getting a bit low values like 0.00005 aproximately and this way when I invert my matrix (to compute impulses etc...) I will get 1/0.00005 which will give a high value (20000) and it makes my simulation explode!!! Please give your opinion about this method. If you know a better one please show me... Thanks :)

Share this post


Link to post
Share on other sites
Advertisement
The inertial tensors for basic solids tend to be diagonal because those solids are expressed in a "simple" orientation. For instance, the cylinder was oriented along one axis, and its crosssection (dig the triple consonant!) was parallel to the other two. If your cylinder was (say) at a 45 degree angle, the tensor would no longer be diagonal.

Here's a pretty good intuition for the inertial tensor: imagine a solid sphere, centered at the origin, with moment of inertia 1. The inertial tensor is a transformation matrix which transforms that sphere into an ellipsoid. (For a diagonal tensor, it'll be an axis-aligned ellipsoid; otherwise, it won't be.) The ellipsoid has the same angular momentum properties as the object which generated the tensor.

Share this post


Link to post
Share on other sites
This sounds like a floating point precision problem. You should chop very small values to zero to avoid problems like that. Doing so, shouldn't impose a problem. (assuming your objects are not deformable - thus the inertia matrix remains constant) You should precalculate the inverse inertia matrix in model coordinates, and perform a similarity transform to the current orientation whenever you need the matrix to derive the angular velocity for the given instance.

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.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!