如何根据缩放级别

时间:2017-02-04 07:42:55

标签: c++ opengl

在我正在工作的项目中,当用户缩小时,3D场景中的平移似乎不够快。

当我检查如何实现平移时,我看到没有考虑缩放级别。

我正在考虑再添加一个名为zoomLevel的乘数,当用户远离模型时,它会变大。

现在读了一下后,我明白了如何从场景坐标创建光线。这link非常有帮助。我的问题是;我现在有一个来自场景坐标的光线,而且我的模型中有一个支点,我可以像参考一样使用。如何从这些创建zoomLevel因子?

我目前的想法是

  • 通过添加z = -1和z = 1来找到最近和最远的点    场景坐标并应用逆投影和模型视图    矩阵。

  • 从这两个人创建一条光线。

  • 找到光线和我的轴心点的交点。如果点不与找到光线中最近的点相交。

创建一个像:

的值
  

zoomLevelFactor =(nearestPointInTheRay.z() - nearestPoint)/   (farPoint - 最近点)

这有意义吗?你有什么建议吗?

0 个答案:

没有答案