Skip to main content
deleted 9 characters in body
Source Link
Nathan
  • 25.2k
  • 1
  • 24
  • 72

I'm a half-reformed pedant. I want to use terms precisely and unambiguously. And it seems that the only "right" meaning for a term is how it's used, in the context in which it is used. But the way that "gimbal lock" is used in 3D often just translates to "everything about Eulers that I don't like." Even among experienced artists. I've even heard people describe blame gimbal lock for issues they've had with quaternion rotations!

I'm a half-reformed pedant. I want to use terms precisely and unambiguously. And it seems that the only "right" meaning for a term is how it's used, in the context in which it is used. But the way that "gimbal lock" is used in 3D often just translates to "everything about Eulers that I don't like." Even among experienced artists. I've even heard people describe blame gimbal lock for issues they've had with quaternion rotations!

I'm a half-reformed pedant. I want to use terms precisely and unambiguously. And it seems that the only "right" meaning for a term is how it's used, in the context in which it is used. But the way that "gimbal lock" is used in 3D often just translates to "everything about Eulers that I don't like." Even among experienced artists. I've even heard people blame gimbal lock for issues they've had with quaternion rotations!

added 531 characters in body
Source Link
Nathan
  • 25.2k
  • 1
  • 24
  • 72

Note what happens to the Euler plane. It flies onto a new tile, cross the North Pole. Why doesn't it fly straight on a single tile? Because of Blender's "anti-aliasing" which doesn't actually remove aliasing at all, it just picks an alias on the basis of a bit more context. Here, it decided it was better to fly onto a new tile than to explore the "canonical Euler" map that I already had. And note: even with a single order (these are all YXZ Eulers), there is more than one way to get from here to there.

Torque and aliasing are the same problem, seen from two different perspectives. The problem is one of mapping between these two distorted spaces. Torque is what you get with Euler bones, where you map one wayfrom the flat map to the sphere. Aliasing is what you get with constraints or with physical gimbals, mapping the other way.

It's a lot like when people try to demonstrate relativity with a rubber mat, distorted by mass. They're showing a 2D slice of spacespacetime, warped by mass, to demonstrate that there is no gravity-- that orbits aren't circles, but straight lines through spacetime. And, widely denigrated as it is, that's a great demonstration of relativity, that accurately represents the spaces involved; just as with Eulers, what is true of the slice, is true of all the slices.

If you use Eulers to represent your rotations, and you rotate in more than one axis, your rotations will be curved. They will be more curved when your 2nd or 3rd axis gets close to 90+-90 degrees rotation and less curved when you get close to 0 degrees. But they will be curved, at any non-zero values.

Do not think that you can split an Euler into halves, or double it, or reasonably split it into components, or anything else. Because these are curved rotations, half of your Euler components are a rotation in a different axis than all of your Euler components, and so on.

You can represent any particular rotation using an Euler triplet, of any order. There are no rotations that can't be represented. The opposite is not true: you cannot represent any particular Euler triplet from a rotation.

Note what happens to the Euler plane. It flies onto a new tile, cross the North Pole. Why doesn't it fly straight on a single tile? Because of Blender's "anti-aliasing" which doesn't actually remove aliasing at all, it just picks an alias on the basis of a bit more context. Here, it decided it was better to fly onto a new tile than to explore the "canonical Euler" map that I already had.

Torque and aliasing are the same problem, seen from two different perspectives. The problem is one of mapping between these two distorted spaces. Torque is what you get with Euler bones, where you map one way. Aliasing is what you get with constraints or with physical gimbals, mapping the other way.

It's a lot like when people try to demonstrate relativity with a rubber mat, distorted by mass. They're showing a 2D slice of space, warped by mass. And, widely denigrated as it is, that's a great demonstration of relativity, that accurately represents the spaces involved; just as with Eulers, what is true of the slice, is true of all the slices.

If you use Eulers to represent your rotations, and you rotate in more than one axis, your rotations will be curved. They will be more curved when your 2nd axis gets close to 90 degrees rotation and less curved when you get close to 0 degrees. But they will be curved, at any non-zero values.

Note what happens to the Euler plane. It flies onto a new tile, cross the North Pole. Why doesn't it fly straight on a single tile? Because of Blender's "anti-aliasing" which doesn't actually remove aliasing at all, it just picks an alias on the basis of a bit more context. Here, it decided it was better to fly onto a new tile than to explore the "canonical Euler" map that I already had. And note: even with a single order (these are all YXZ Eulers), there is more than one way to get from here to there.

Torque and aliasing are the same problem, seen from two different perspectives. The problem is one of mapping between these two distorted spaces. Torque is what you get with Euler bones, where you map from the flat map to the sphere. Aliasing is what you get with constraints or with physical gimbals, mapping the other way.

It's a lot like when people try to demonstrate relativity with a rubber mat, distorted by mass. They're showing a 2D slice of spacetime, warped by mass, to demonstrate that there is no gravity-- that orbits aren't circles, but straight lines through spacetime. And, widely denigrated as it is, that's a great demonstration of relativity, that accurately represents the spaces involved; just as with Eulers, what is true of the slice, is true of all the slices.

If you use Eulers to represent your rotations, and you rotate in more than one axis, your rotations will be curved. They will be more curved when your 2nd or 3rd axis gets close to +-90 degrees rotation and less curved when you get close to 0 degrees. But they will be curved, at any non-zero values.

Do not think that you can split an Euler into halves, or double it, or reasonably split it into components, or anything else. Because these are curved rotations, half of your Euler components are a rotation in a different axis than all of your Euler components, and so on.

You can represent any particular rotation using an Euler triplet, of any order. There are no rotations that can't be represented. The opposite is not true: you cannot represent any particular Euler triplet from a rotation.

added 3740 characters in body
Source Link
Nathan
  • 25.2k
  • 1
  • 24
  • 72

Screw the math. What does gimbal lock mean for me, as a 3D animator?

If you use Eulers to represent your rotations, and you rotate in more than one axis, your rotations will be curved. They will be more curved when your 2nd axis gets close to 90 degrees rotation and less curved when you get close to 0 degrees. But they will be curved, at any non-zero values.

If you use constraints that turn rotations into Eulers, or transform channel drivers, you will experience discontinuities in the output. These discontinuities are hard to predict, but will not occur before 90 degrees of rotation.

If you want to use Eulers, choose your primary axis wisely and avoid large rotations.

Screw the math. What does gimbal lock mean for me, as a 3D animator?

If you use Eulers to represent your rotations, and you rotate in more than one axis, your rotations will be curved. They will be more curved when your 2nd axis gets close to 90 degrees rotation and less curved when you get close to 0 degrees. But they will be curved, at any non-zero values.

If you use constraints that turn rotations into Eulers, or transform channel drivers, you will experience discontinuities in the output. These discontinuities are hard to predict, but will not occur before 90 degrees of rotation.

If you want to use Eulers, choose your primary axis wisely and avoid large rotations.

added 3740 characters in body
Source Link
Nathan
  • 25.2k
  • 1
  • 24
  • 72
Loading
added 98 characters in body
Source Link
Nathan
  • 25.2k
  • 1
  • 24
  • 72
Loading
added 98 characters in body
Source Link
Nathan
  • 25.2k
  • 1
  • 24
  • 72
Loading
Source Link
Nathan
  • 25.2k
  • 1
  • 24
  • 72
Loading