问题描述
我正在尝试为Autodesk Forge Viewer API开发一个扩展,其功能类似于所包含的当前第一人称导航工具。 我正在描述的问题也出现在第一人称导航工具中,因此在这里我将用它来说明我的示例。
建筑物的正射影像。
现在,使用鼠标导航至如下所示的位置。 通过单击鼠标来旋转模型,并通过滚轮滚动来完成此操作。
单击“第一人称视角”按钮将摄像机视图移动到建筑物内的某个距离。
这似乎不会改变相机的位置或目标值,即使相机被锁定,也会发生这种情况。 进行此操作的实际呼叫似乎是对navigation.toPerspective的呼叫。
我想知道是否有人知道一种解决方法,该解决方法使我可以使用照相机所对焦的位置的第一个人。 如我之前所说,我正在编写的插件实际上并不是第一人称扩展,因此假设我可以在需要进行的任何必要的地方进行必要的更改。
1楼
如果您深入研究内置的第一人称扩展名的源代码(可以通过到\\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);