我需要允许用户使用平行投影在3D中平移,旋转,放大/缩小场景。平移和放大/缩小非常简单。但是,当使用鼠标旋转时,我不确定使用什么作为旋转中心。特别是,我不确定旋转中心在屏幕内的深度应该是什么。
这就是我现在正在做的事情:取模型的质心并将其作为旋转中心。但是,质心有时会落在可见区域之外(由于平移和缩放级别)而用户(我自己)发现将模型围绕我们看不到的点旋转是违反直觉的。
在这种情况下,什么被认为是用户互动的标准?什么可能是最直观的行为?
PS:我只有一个视口(与Blender和朋友不同)。
编辑如果经验丰富的各方能够评估Google SketchUp和Blender 3D等软件包中的当前做法并发表意见,那就太棒了。
答案 0 :(得分:3)
您可以尝试从相机向屏幕中心投射光线,找到最近和最远的交叉点,然后在交叉点的中点设置旋转点。
答案 1 :(得分:1)
我在这里看到了一些解决方案,我最喜欢的是允许用户设置(并用鼠标拖动)旋转中心。然后,您抓住模型上的一个点并拖动以围绕该中心旋转。不太好但可行的是将视口的中心投影到模型坐标中。
答案 2 :(得分:0)
我不确定他们是否更喜欢这个...但是尝试让旋转旋转相机,使它像第一人称射击游戏中那样。这可能不适合鼠标旋转的想法,但它是最常用的之一,并且应该在用户使用的几秒内直观。