Navigate Gizmo Doesn't Really Work


(Harley) #1

I’ve tried to bring this up before, but couldn’t get much purchase, so trying again.

Let’s do some exercises…

First, press numpad-1 to view a model from front view:

Navigate1

It seems to be okay, sort of. One subtlety though, it is nicely indicating the the Z-axis is going up. So add a unit to your model’s Z and he will go up in the viewport. Similarly add one unit to “X” and he will move right. However, it seems to indicate that the “Y” axis is facing the viewer. When in fact adding one to “Y” will move the monkey away. Let’s ignore that for now though…

Click on the “Y” in the center of the widget. It will do what you expect: you’ll be looking at the back of the monkey:

Navigate2

It still makes sense, a bit. The gizmo did change, but only indicating the reversal of the Y by dimming the ball. That doesn’t seem sufficient to me, but maybe enough for you. Again, let’s ignore that for now…

Instead, grab the “Y” ball in the middle and drag it just a bit, just enough to start moving, then move it back to where it was. You should still be looking at the back of his head because you made no change. But look at the widget now:

Navigate3

Yes, the “Y” ball is now bright green so it is indicating the the direction of the Y axis has reversed when it did not. Let’s examine this a bit further.

Drag the “Y” axis around a bit. Either drag by the bright green “Y” ball or the duller green ball. Try to put the dull green ball in front. Can you do it? Can you even tell if you’ve done so? Why is it a problem?

Compare this image of the gizmo to the one following. Here we are looking in front:

Navigate4

And this one is from behind. Yet the way that the “Y” axis balls are drawn is identical.

Navigate5

The problem is that the widget lives and works in a mini-3d environment, yet screws up some of the 3d cues your brain needs to judge it. If there are going to be big balls and small ones, then it is the ones in back that need to be small while the ones closer to us need to be larger. If there are going to be bright balls and dull balls, then the brights should be the ones that are in front.

This does mean that we need a new way to show the direction of the axis. So need to add “+” or “-” when needed. We don’t have to label every ball though. We can get away with labelling the closest 3 balls with direction and label, and not labelling the far balls, favoring the “+” axis when they are equal.


(William) #2

Yup we have talked about this very issue. I think the solution is, as you say, to just display the axis names that point towards you, rather than always the positive axes.


(Harley) #3

Not just though. These issues things all flow together. So if you just label the axis names that point toward you that means you have to add a direction indicator ("+" or “-”) possibly only when negative. But you can’t really put “-X” on a smaller and dull red ball when there is a larger, brighter one (without label) behind it.

So yes you have to label the axes pointing toward you, but you have to add direction indication, and make it so the balls in front are the ones that are bigger and brighter.

Otherwise, just labelling the close axes:

navigate6

Doing so but showing close axes brighter and larger:

navigate7


(William) #4

Yes. Exactly that was discussed on Devtalk.


(Harley) #5

Awesome. I remember bringing this up in Devtalk ages ago, but I was pretty sure that it was left as a small issue to tackle later. At that time I don’t think anyone else saw the need to have the balls change size and saturation as they moved from far to close.

With this thread I thought I would try a bit harder to illustrate these issues in as clear a manner as I could. Sorry if I seem to be beating a dead horse instead. LOL


(jovlem) #6

What also doesn’t help is that the one whithout a letter in it are smaller. This makes it harder to orientate which one is in front and in the back.

The fact the gizmo is orthographic also doesn’t help, at least not for me. Did you consider to show it with a little perspective? That automatically makes the ones in the front bigger.

Also I would like to have an option to replace the X, Y and Z ( and _-X, -Y and -Z ) to replace with a custom text or icon. This should be very small offcourse.

I would prefer to have the first letter from the view names ( L = Left, F = Front, … ).


(Harley) #7

You can see how it works with the changes I’ve mentioned by applying the patch from here:

https://developer.blender.org/D3936