Re: [QGIS-Developer] 3D View Interface Usability

2021-01-08 Thread Martin Dobias
Hi Jed

Thanks a lot for all the input - there is a lot of value in there. I like
the idea of having a modifier like Space to temporarily switch from the
current tool to navigation - right now we only have some basic tools like
identify or measure, but in the future we will likely have editing tools
where this will be very handy. Some of your suggestions mean that we would
also need to change the existing associations to various mouse keys - that
needs a bit more consideration. In the short term one of the big wins would
be to fix the camera rotation ("tumble") as you mentioned.

The good news is that a "fly" navigation mode is on its way - hopefully we
can get it merged for QGIS 3.18:
https://github.com/qgis/QGIS/pull/40893

Cheers
Martin


On Wed, Jan 6, 2021 at 2:31 AM Jed Frechette  wrote:

> Hi Martin,
>
> I’m glad to hear my impressions weren’t too far off. I do think there
> are benefits to the GE style controls, especially for users that are
> already familiar with that software. Perhaps it makes sense to keep
> those controls as a separate navigation mode in addition to a new mode
> that is better suited to more complex tasks? Although I guess there’s
> the risk of muddying the interface by not picking one clear consistent
> set of controls and optimizing them.
>
> It’s interesting that you mention multiple viewports, as that would
> actually be fairly low on my wish list. This may be a personal
> preference, but I don’t use multiple views very often in applications
> where I have access to them. There are definitely certain tasks which
> are easier with multiple views so they are nice to have, but if I had
> to choose I’d much rather have a single viewport that is very
> efficient than multiple viewports that are less fluid. That’s what
> most of my suggestions below are geared toward; a single viewport
> where an experienced user can almost instantly navigate to the exact
> view they want, potentially edit/create some data, and within a few
> seconds be moving on to the next part of the scene.
>
> I’ll provide links to a couple examples and videos at the end of my
> post, but since there is so little consistency between 3D apps I want
> to provide some justification for what I think works rather than just
> say “Make it like my favorite program.”
>
> Regardless of the exact control scheme, I think the most important
> observation to make when designing a 3D interface is that for any type
> of interactive task the user is constantly switching between
> navigating around the scene and using tools to perform actions, e.g.
> identify, measure, digitize, etc.. Therefore, switching between those
> two modes of interaction needs to be as quick and easy as possible.
> Clicking toolbar icons to switch modes works but is probably the
> slowest way to do it. Some applications try to overload the mouse
> buttons so you can navigate and use tools at the same time, but I’ve
> never used a system like that which I thought worked well. I think
> it’s much better to make a clear distinction between navigate mode and
> tool mode and make the user responsible for switching between them via
> hotkey. That way your tools can make use of all 3 mouse buttons
> independently of your navigation control scheme, which can also
> utilize all 3 buttons.
>
> Although various applications have made different choices about the
> hotkey to use, to me the space bar is the obvious choice. The space
> bar is the most used key when typing and the navigation hotkey will be
> the most used key while navigating in 3D view so it should be the
> space bar too. The navigate hotkey could be used as a toggle, e.g.
> with a tool active tap the spacebar to switch to navigate mode then
> tap it again when you want to go back to the tool. Alternatively, the
> hotkey could be a modifier, e.g. hold down the spacebar to navigate
> then release it to return to the tool. Both can work well, but I
> prefer the modifier approach. A modifier removes the need for an
> indicator, e.g. different cursors, for which mode you’re currently in
> like you would need with a toggle. In addition a modifier can act as a
> hint to stay in dynamic mode if your viewport is set up to improve
> interactive performance by rendering different LODs based on whether
> the camera is currently static or dynamically moving.
>
> The specific navigation control scheme I would advocate for is:
>
> Dolly along camera z-axis (Space + RMB or Scroll wheel)
> ==
> QGIS already behaves this way so no changes here. Usage of the scroll
> wheel is also consistent between the 2D and 3D views so that’s good.
>
> Track along camera x & y axes (Space + MMB, Space + Shift + RMB)
> ===
> The middle mouse button is used for the same movement in the 2D view
> so it would be good to stay consistent with that. The alternate
> mapping, Space + Shift+ RMB, is for laptop users that only have 2
> trackpad buttons. By tracking 

Re: [QGIS-Developer] 3D View Interface Usability

2021-01-05 Thread Jed Frechette
Hi Martin,

I’m glad to hear my impressions weren’t too far off. I do think there
are benefits to the GE style controls, especially for users that are
already familiar with that software. Perhaps it makes sense to keep
those controls as a separate navigation mode in addition to a new mode
that is better suited to more complex tasks? Although I guess there’s
the risk of muddying the interface by not picking one clear consistent
set of controls and optimizing them.

It’s interesting that you mention multiple viewports, as that would
actually be fairly low on my wish list. This may be a personal
preference, but I don’t use multiple views very often in applications
where I have access to them. There are definitely certain tasks which
are easier with multiple views so they are nice to have, but if I had
to choose I’d much rather have a single viewport that is very
efficient than multiple viewports that are less fluid. That’s what
most of my suggestions below are geared toward; a single viewport
where an experienced user can almost instantly navigate to the exact
view they want, potentially edit/create some data, and within a few
seconds be moving on to the next part of the scene.

I’ll provide links to a couple examples and videos at the end of my
post, but since there is so little consistency between 3D apps I want
to provide some justification for what I think works rather than just
say “Make it like my favorite program.”

Regardless of the exact control scheme, I think the most important
observation to make when designing a 3D interface is that for any type
of interactive task the user is constantly switching between
navigating around the scene and using tools to perform actions, e.g.
identify, measure, digitize, etc.. Therefore, switching between those
two modes of interaction needs to be as quick and easy as possible.
Clicking toolbar icons to switch modes works but is probably the
slowest way to do it. Some applications try to overload the mouse
buttons so you can navigate and use tools at the same time, but I’ve
never used a system like that which I thought worked well. I think
it’s much better to make a clear distinction between navigate mode and
tool mode and make the user responsible for switching between them via
hotkey. That way your tools can make use of all 3 mouse buttons
independently of your navigation control scheme, which can also
utilize all 3 buttons.

Although various applications have made different choices about the
hotkey to use, to me the space bar is the obvious choice. The space
bar is the most used key when typing and the navigation hotkey will be
the most used key while navigating in 3D view so it should be the
space bar too. The navigate hotkey could be used as a toggle, e.g.
with a tool active tap the spacebar to switch to navigate mode then
tap it again when you want to go back to the tool. Alternatively, the
hotkey could be a modifier, e.g. hold down the spacebar to navigate
then release it to return to the tool. Both can work well, but I
prefer the modifier approach. A modifier removes the need for an
indicator, e.g. different cursors, for which mode you’re currently in
like you would need with a toggle. In addition a modifier can act as a
hint to stay in dynamic mode if your viewport is set up to improve
interactive performance by rendering different LODs based on whether
the camera is currently static or dynamically moving.

The specific navigation control scheme I would advocate for is:

Dolly along camera z-axis (Space + RMB or Scroll wheel)
==
QGIS already behaves this way so no changes here. Usage of the scroll
wheel is also consistent between the 2D and 3D views so that’s good.

Track along camera x & y axes (Space + MMB, Space + Shift + RMB)
===
The middle mouse button is used for the same movement in the 2D view
so it would be good to stay consistent with that. The alternate
mapping, Space + Shift+ RMB, is for laptop users that only have 2
trackpad buttons. By tracking along the camera x & y axes instead of
GE style tracking navigation is much more intuitive in a fully 3D
world and you eliminate the orientation dependence I referred to in my
first post.

Tumble (Space + LMB)
=
Tumbling in QGIS is already pretty good. The only change I would make
is to pivot around the cursor’s current position rather than the
center of the viewport. uclaros already suggested this in the tracker
[1] and it would make precise navigation much easier.

Roll around camera z-axis (Space + Ctrl + LMB)
===
This is really useful when you just want to level the camera relative
to the horizon.

Box zoom (Space + Ctrl + RMB)

Good for zooming in to a specific region of the scene.

Other navigation controls could certainly be added, e.g. restricting
tumbling around additional axes, but I think the controls above cover
the majority of needs.

Two 

Re: [QGIS-Developer] 3D View Interface Usability

2021-01-04 Thread Martin Dobias
Hi Jed

Thanks a lot for your feedback. You have summarized it pretty well - camera
controls in QGIS 3D are indeed largely based on Google Earth controls which
I found relatively intuitive at the time when starting the work in 2017. We
have realized over time that this kind of navigation is not enough for
various use cases, including the one you have mentioned (to look at 20th
floor of a building). There is definitely interest to improve it,
especially with point clouds the limitations in the navigation are much
easier to see.

Editing vector data in 3D is near the top of the wish list for many users,
so I think we will get to it sooner or later :-) Totally agreed that
snapping to point clouds should be available to simplify data capturing.
Probably an option to view the scene from multiple angles at once would be
also useful for good quality editing (e.g. when editing vertices of a
building in 3D).

It looks like you already have ideas how to improve things - I would love
to hear your thoughts how to make the navigation better. Please feel free
to add links to videos of other software where you think the camera control
behaves according to your expectations...

Regards
Martin


On Mon, Jan 4, 2021 at 12:33 AM Jed Frechette 
wrote:

> Happy New Year to all,
>
> Recently I’ve been spending time playing with the 3D view in QGIS and
> I’m hoping to start a discussion about the UI and whether or not it
> might make sense to consider some changes to that UI based on what the
> intended uses of the 3D view are.
>
> Since I haven’t been directly involved in QGIS development before I’m
> approaching this from a user’s perspective and thought I should start
> with my observations and assumptions in case they’re radically
> off-base compared to what the core developers envision for the 3D
> view.
>
> Looking at the current state of the 3D view it seems heavily
> influenced by Google Earth. In particular, it seems to be primarily
> designed to simply display content that was created elsewhere. In the
> context of the rest of the QGIS UI, it is much more similar to the
> Print Layout view than the main 2D Map view. From a workflow
> perspective, you work with your data in the main 2D Map and then
> switch to the Print Layout or 3D views when you want to render that
> data in a different context.
>
> I think now is a good time to start thinking about a potentially
> bigger role for the 3D view because of the upcoming point cloud
> support. I know that interactive tools are out of scope for the
> current point cloud project, however, I think as soon as users can
> visualize point clouds in QGIS they will want to start interacting
> with them. Once the novelty wears off, simply rendering a point cloud
> in 3D is pretty ugly and not terribly useful. However, being able to
> digitize 3D points or lines with snapping to that point cloud is
> extremely useful and that type of work will be difficult to do without
> a well-designed 3D viewport.
>
> Even without new interactive tools, I think the more volumetric and
> often unevenly distributed nature of most point cloud datasets will
> make the current Google Earth style navigation less intuitive than it
> is when dealing with the mostly 2D data it was designed to interact
> with. For example, with the current camera controls you can’t track
> along the world z-axis so you lose a degree of freedom when the camera
> is horizontal. If you are looking at a street level building facade
> and want to move to looking at the 20th floor you can’t just track
> along the z-axis to get there. You need to tilt the camera up, try to
> place it’s rotation point at the 20th floor (possibly moving the
> camera backward and hoping nothing blocks your view), then tilt the
> camera down (which translates the camera up) to get back to
> horizontal.
>
> Although I spend a fair amount of time doing GIS work, my perspective
> comes from spending the last 10 years working with lidar and similar
> data in 3D modeling and metrology applications, where the primary mode
> of interaction is a 3D viewport. As a result, I have several specific
> thoughts on changes to the 3D View’s UI that would make it easier to
> use, better able to eventually support more interactive tools and more
> consistent with the rest of the QGIS UI. This email is already long
> enough though so rather than get into that now, I’d first rather ask
> what others think of the current 3D view.
>
> How much do people currently use the 3D view? Is the current UI
> working well for how it is being used? What about down the road? Is
> there a desire for more 3D tools and if so are there limitations of
> the current design that should be reconsidered?
>
> Thanks for reading,
>
> --
> Jed Frechette
> ___
> QGIS-Developer mailing list
> QGIS-Developer@lists.osgeo.org
> List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
> Unsubscribe: 

[QGIS-Developer] 3D View Interface Usability

2021-01-03 Thread Jed Frechette
Happy New Year to all,

Recently I’ve been spending time playing with the 3D view in QGIS and
I’m hoping to start a discussion about the UI and whether or not it
might make sense to consider some changes to that UI based on what the
intended uses of the 3D view are.

Since I haven’t been directly involved in QGIS development before I’m
approaching this from a user’s perspective and thought I should start
with my observations and assumptions in case they’re radically
off-base compared to what the core developers envision for the 3D
view.

Looking at the current state of the 3D view it seems heavily
influenced by Google Earth. In particular, it seems to be primarily
designed to simply display content that was created elsewhere. In the
context of the rest of the QGIS UI, it is much more similar to the
Print Layout view than the main 2D Map view. From a workflow
perspective, you work with your data in the main 2D Map and then
switch to the Print Layout or 3D views when you want to render that
data in a different context.

I think now is a good time to start thinking about a potentially
bigger role for the 3D view because of the upcoming point cloud
support. I know that interactive tools are out of scope for the
current point cloud project, however, I think as soon as users can
visualize point clouds in QGIS they will want to start interacting
with them. Once the novelty wears off, simply rendering a point cloud
in 3D is pretty ugly and not terribly useful. However, being able to
digitize 3D points or lines with snapping to that point cloud is
extremely useful and that type of work will be difficult to do without
a well-designed 3D viewport.

Even without new interactive tools, I think the more volumetric and
often unevenly distributed nature of most point cloud datasets will
make the current Google Earth style navigation less intuitive than it
is when dealing with the mostly 2D data it was designed to interact
with. For example, with the current camera controls you can’t track
along the world z-axis so you lose a degree of freedom when the camera
is horizontal. If you are looking at a street level building facade
and want to move to looking at the 20th floor you can’t just track
along the z-axis to get there. You need to tilt the camera up, try to
place it’s rotation point at the 20th floor (possibly moving the
camera backward and hoping nothing blocks your view), then tilt the
camera down (which translates the camera up) to get back to
horizontal.

Although I spend a fair amount of time doing GIS work, my perspective
comes from spending the last 10 years working with lidar and similar
data in 3D modeling and metrology applications, where the primary mode
of interaction is a 3D viewport. As a result, I have several specific
thoughts on changes to the 3D View’s UI that would make it easier to
use, better able to eventually support more interactive tools and more
consistent with the rest of the QGIS UI. This email is already long
enough though so rather than get into that now, I’d first rather ask
what others think of the current 3D view.

How much do people currently use the 3D view? Is the current UI
working well for how it is being used? What about down the road? Is
there a desire for more 3D tools and if so are there limitations of
the current design that should be reconsidered?

Thanks for reading,

-- 
Jed Frechette
___
QGIS-Developer mailing list
QGIS-Developer@lists.osgeo.org
List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer