[Bf-committers] NDOF: patch for spin/roll rotations

Ettore Pasquini ettore_pasquini at 3dconnexion.com
Fri Aug 10 01:42:28 CEST 2007


I don't know if anybody noticed but the rotations currently performed with
our NDOF devices are wrong in Blender.  To realize this, let's use a
CAD-style Zoom axis (i.e. parallel to the device base (blue setting in the
pref pane):
http://cubelogic.org/blender/zoom-axis-setting.png

Go to Top View in turntable mode and slightly tilt the view so the world's
Up blue axis points down. If you do a Spin motion on the device everything
_seems_ ok. Now tilt back so the Up axis points up. Oops, the rotation is
now inverted. Now, if you spin and tilt the view at the same time, bringing
the Up blue axis from pointing up to pointing down, you'll notice a "bump"
when it crosses over. Not good.

The full issue is that if you are looking down (Top view) you are using the
Spin axis on the device to rotate around the Up axis, although the axis
parallel to the Up-axis is the Roll axis on the device. It is not
consistent.  If the seen Up axis is parallel to the zoom axis, you should
use a Roll motion only. When you start to tilt, moving from Top to Side
view, Spinning will increasingly become more relevant while the Roll
component should decrease. When a full Side view is reached, rotations
around the world's Up axis are achieved with a Spin motion only.

In other words the control of the spinning around the world's Up axis should
move from the device's Spin axis to the device's Roll axis depending on the
orientation of the world's Up axis relative to the screen.

I hope my explanations were clear enough. I suppose it's much easier to just
apply the patch and see for yourself:
http://cubelogic.org/blender/spin-roll-control.patch

The patch above makes all the rotations consistent with your zoom settings.

Ettore



More information about the Bf-committers mailing list