代码之家  ›  专栏  ›  技术社区  ›  Agnel Kurian

在三维中旋转模型:旋转中心的建议

  •  3
  • Agnel Kurian  · 技术社区  · 15 年前

    我需要允许用户在使用平行投影的3d中平移、旋转、放大/缩小我的场景。平移和放大/缩小一直是非常直接的。但是,当使用鼠标进行旋转时,我不确定旋转的中心是什么。特别是,我不确定屏幕内部的旋转中心应该落在什么深度。

    我现在正在做的是:取模型的质心作为旋转的中心。但是,质心有时会落在可见区域之外(由于平移和缩放级别),用户(和我自己)会发现围绕我们看不见的点旋转模型是违反直觉的。

    在这种情况下,用户交互的标准是什么?这里最直观的行为是什么?

    PS:我只有一个视图端口(不像 Blender 和朋友)。

    编辑: 如果有经验的各方能够在google sketchup和 Blender 3D 发表他们的意见。

    3 回复  |  直到 14 年前
        1
  •  3
  •   Winder    14 年前

    您可以尝试将光线从相机投射到屏幕中心,找到最近和最远的交点,然后在交点的中点设置旋转点。

        2
  •  1
  •   SmacL    15 年前

    我在这里看到了一些解决方案,我最喜欢的是允许用户设置(并用鼠标拖动)旋转中心。然后抓住模型上的一个点并拖动以绕此中心旋转。不太好但可行的是将视区的中心投影回模型坐标中。

        3
  •  0
  •   jghost    14 年前

    我不确定他们是否更喜欢这个…但是试着让镜头旋转,让它像第一人称射击游戏一样。这可能不太符合鼠标旋转的想法,但它是最常用的方法之一,应该在用户使用后几秒钟内就可以直观地看到。

    推荐文章
    Nacho  ·  DX12描述符堆管理
    7 年前