nmwsharp / nmwsharp/polyscope

Suggestions on rotate/zoom/pan behavior

未关闭
#367 3 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

主要语言
C++
星标
2.2k
派生
242
平均合并
11 分钟
30 天内合并 PR
1

描述

Hi, thanks for this great lib !

  • The recent feature that allows to select a focus point with ctr+shift+left click is very convenient.
  • The trackball follows the rule of path invariance which is great too !

However, I'd like to suggest other features that could improve the ergonomy when carefully inspecting a scene.

Rotate

Current trackball seems to be an azimuth/elevation control which is fine, but disallows roll completely. This "turntable" behavior might be desired, but a more standard approach is to use an azimuth/elevation behavior in the center of the viewport fading to a more roll-permissive behavior further from the center. This nice blog post from Scott Shambaugh summarizes different trackball implementations, including the standard OpenGL one.

Zoom

The default mouse scroll zoom should be relative (without pressing shift+ctrl). The absolute zoom is bad because zooming is supposed to give an impression of scaling things. When far from the scene, it is painfully slow, and way too sensitive near an object's surface.

Pan

Currently, panning the camera does not move the focus point which creates a incomfortable setup if the user decide to rotate again. I suggest to also translate the focus point by a same amount to prevent that. Also, the panning is absolute thus suffers from the same issues of the absolute zoom. I recommend to make it proportional to the distance between the eye and the focus point.

Lastly, I find the focus point picking so convenient I think it should be more accessible (maybe double click like in Meshlab ?)

Those are only suggestions of course.

贡献指南

这个仓库没有索引到贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

调研方向

首先,跟踪 issue 中描述的现有 trackball、zoom、pan 和焦点输入处理。将当前行为与链接的 trackball 参考进行比较,并在实现任何内容之前,分别为旋转、相对 zoom、按比例 pan、焦点移动和焦点激活定义可测试的决策。

由索引模型根据 Issue 内容生成。

评估

技术栈
cpp
领域
computer-graphics
Issue 类型
功能
难度
5/5
预计耗时
一周以上
活跃度
停滞
描述清晰度
基本清楚
新手友好度
30/100

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。