# bone transformations without translations?

This topic is 1880 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

## Recommended Posts

HI,

I have a question wheather it is pefectly reasonable to create bone transformation matricies without translation part.

in case, that, all bones are connected to each other, plus, bones cannot bend, plus, bonnes cannot scale (move their ends closer), plus, all bones are rooted to common ancestor. Will this result in a 'in place' animation, which will be the same animation, but bones will not move if the common ancestor translates (in the end, translation of common ancestor bone is ignored too). The common ancestor is spine. Each bone has its absolute 3x3 matrix of rotation, that contains in its matrix rotations of parent bones up to ancestor.

Thanks!

##### Share on other sites

If you don't have a translation then the origin (0, 0, 0) always gets transformed to itself when you multiply matrices.

##### Share on other sites

Becouse I have a little disbelief. If one rotates something in space by 3x3 matrix , he rotates it around 0,0,0 point. Rotation around an arbitray point of the space is a transformation thet needs the fourth translation part? Is it? I would like the bone matricies be in object space, not bone local space, thus, they would have to rotate around 0,0,0 point, but, have them effectively rotate around their local rooty point, which in turn is an arbitrary point of object space.

##### Share on other sites

A 3x3 matrix can only transform a 3D Vector Space to itself via a linear mapping, and a linear map always sends the origin to itself. You need an affine map which is a linear map combined with a translation part, 4x4 matrices work nicely for that (you can just use a 3x3 matrix and a 3D translation vector, but the maths is less elegant (i.e. less simple)).

EDIT: Note multiplying the 4D origin by a matrix also results in the 4D origin, i.e. (0, 0, 0, 0). That isn't a valid point in 4D homogeneous space though, the 3D origin in homogeneous space is (0, 0, 0, w) for any non zero w. Homogeneous space is 3D space with points at infinity "bolted on" basically. The vector (x, y, z, 0) represents a vector pointing in the direction of (x, y, z) in 3D space but infinitely far away (so handy for directions of normals). (0, 0, 0, 0) doesn't point anywhere so it makes no sense in 4D homogeneous coordinates.

• ### What is your GameDev Story?

In 2019 we are celebrating 20 years of GameDev.net! Share your GameDev Story with us.

• 10
• 11
• 13
• 9
• 9
• ### Forum Statistics

• Total Topics
634085
• Total Posts
3015407
×