Wings 3D Development Forum

Full Version: Taming mouse-camera rotate behavior?
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
I have spent a few hours with Wings3D, to some good effect.

But one thing I have not mastered is how to get camera movement ("scene rotation") to behave.

Here I'm talking about clicking the mouse wheel to perform "Tumble" mode.

The mouse up-down motion always maps to rotating the scene about an axis that's horizontal relative to the screen, and passes through the origin. This behaves uniformly no matter the scene orientation.

By contrast, the mouse left-right motion rotates only around the Y axis, regardless of the position of the scene. Further, the Y axis seems to be constrained to a plane that's normal to a horizontal line on the screen.

This has two implications:

-- One mouse direction maps to a screen-relative motion, while the other maps to an model-relative motion -- rather disorienting.

-- There seems no way to get certain views: For example, how do I position the scene so that the Y-axis appears horizontal on the screen, and the Z axis vertical? Is this actually impossible?

Thanks. Graham
Starting from the end...

(12-24-2017, 01:53 PM)gwideman Wrote: [ -> ]-- There seems no way to get certain views: For example, how do I position the scene so that the Y-axis appears horizontal on the screen, and the Z axis vertical? Is this actually impossible?
No. This is the way Wings3D used the axis.
During import and export you have option to switch them.

(12-24-2017, 01:53 PM)gwideman Wrote: [ -> ]-- One mouse direction maps to a screen-relative motion, while the other maps to an model-relative motion -- rather disorienting.
I'm not sure. I would say that it's always screen-relative which we round around the centre of the screen (axis origin). Thinking in 2D screen, rotating around Y (left-right) and rotating around X (up-down).

Something handy would be to use View->Aim or View->Highlight Aim [A] to define a temporary centre for the camera actions (the Look At point). Just select an object element and hit "A" to centre that element on screen. Even if you pan the camera that will still be the centre for the camera actions.
Thanks micheus for responding.

>> Is that actually impossible?
> No.
Hmmm, I think you probably mean "yes" it is impossible?

> I would say that it's always screen-relative which
> Thinking in 2D screen, rotating around Y (left-right) and rotating around X (up-down).

Except that Wings3D doesn't do that. Imagine viewing a model of the earth, with earth axis = Y axis, and +Y points out of north pole. +X axis points out at 0 N 0 W, and +Z points out of 0 N 90 W (huh, near Galapagos islands!). (Hahaha, I just now saw that you have a tutorial on youtube with exactly that model! https://www.youtube.com/watch?v=RqZ-Ikn2M0g)

Now arrange the view so that Y (north) is "up" on screen, and X is to the right. I'll call this "home" position

1. Mid-mouse drag to the _right_ rotates the globe surface on screen to the _right_ ("right-handed rotation around around Y"),
Mid mouse drag _down_ rotates the globe surface on screen _down_ ("right hand rotation around X axis").

So these two rotations could be either screen relative or model relative; they agree.

2. But... from home position, if you rotate around X far enough that +Y (north) points down, now:
Mid-mouse drag to the _right_ rotates the globe surface to the _left_ (totally opposite mouse-versus-surface action, but _still_ a right-hand turn around around Y). So that's model relative, not screen relative.
Meanwhile, mid-mouse drag down continues to rotate the globe surface down on screen, so still qualifies as either screen relative or model relative.

3 If instead, from home position (Y up on screen), you rotate the model around Y so that +Z is pointing to screen right. In this position, mouse down motion still rotates the surface down on screen. Up-down rotation is no longer around X, it's around Z. So this is screen relative.

4. And the worst case is when you get the Y axis pointing out of the screen. (Say X right and Z down on screen) Now left-right mouse motion causes "spinning of the screen", because left right is still coupled to rotation around Y. And that spinning is in the reverse direction of mouse movement, on either the top or bottom half of the screen (depending on whether + or - Y points out of screen).

--------

In short, _up-down_ mouse movement is screen-relative. It is as though the mouse is literally touching the model and dragging the surface in the direction of the mouse.

But left-right mouse movement causes only rotation around Y, and it's only like touching the sphere's surface when Y is pointing up.

Compare this to mouse action in Google Earth, where the mouse always moves the surface of the earth so that the initial mouse-down point on the earth surface stays under the mouse pointer during drag.

I do realize that the Aim feature can be helpful to work with off-origin models or components. But it doesn't make any difference to the mapping of mouse-motion to rotation.
(12-25-2017, 05:38 AM)gwideman Wrote: [ -> ]>> Is that actually impossible?
> No.
Hmmm, I think you probably mean "yes" it is impossible?
Twice in a day. Blush

Quote:I do realize that the Aim feature can be helpful to work with off-origin models or components. But it doesn't make any difference to the mapping of mouse-motion to rotation.
Sure.

About the camera, if you are comfortable with the use of any other 3D application you can change from the default Wings3D to one of: Nendo, Mirai, Maya, 3d max, Blender, Motionbuilder and SketchUp.

Wings3D has a limited documentation, but it can still be of interest for some basic things. Check the Preferences dialog and Camera Navigation for some details.