当前位置: 代码迷 >> JavaScript >> 将相机设置为从正交视角透视,导致相机改变方向
  详细解决方案

将相机设置为从正交视角透视,导致相机改变方向

热度:40   发布时间:2023-06-07 18:17:37.0

我正在尝试为Autodesk Forge Viewer API开发一个扩展,其功能类似于所包含的当前第一人称导航工具。 我正在描述的问题也出现在第一人称导航工具中,因此在这里我将用它来说明我的示例。

建筑物的正射影像。

现在,使用鼠标导航至如下所示的位置。 通过单击鼠标来旋转模型,并通过滚轮滚动来完成此操作。

单击“第一人称视角”按钮将摄像机视图移动到建筑物内的某个距离。

这似乎不会改变相机的位置或目标值,即使相机被锁定,也会发生这种情况。 进行此操作的实际呼叫似乎是对navigation.toPerspective的呼叫。

我想知道是否有人知道一种解决方法,该解决方法使我可以使用照相机所对焦的位置的第一个人。 如我之前所说,我正在编写的插件实际上并不是第一人称扩展,因此假设我可以在需要进行的任何必要的地方进行必要的更改。

如果您深入研究内置的第一人称扩展名的源代码(可以通过到\\extensions\\BimWalk\\BimWalk.js ),则在activation过程中将发生以下导航(因为这是通过编程完成的,因此不会遵守相机锁):

viewer.navigation.toPerspective(); //Switch to perspective (view or real world as opposed to orthography) camera
viewer.navigation.setVerticalFov(75, true); //This sets the vertical field of view to 75 degree for a better "walking" experience
//It also records the current vertical fov and sets it back when exiting First Person

然后,退出“第一人称”时,它会将垂直视野重新设置。

viewer.navigation.setVerticalFov(_previousFov, true);
  相关解决方案