在移动VR中伪造视角

时间:2017-10-27 07:45:44

标签: virtual-reality autodesk-forge autodesk-viewer

在手机上启动VR工具并直接向前看时,我想让视图在屏幕中央显示整个模型。视图应该是一个小角度,所以我可以看到整个建筑物的楼层。目前它是直接向前,这使您看不到整个模型的视图。我怎么能做到这一点?

例如,在此Autodesk示例中,当您输入VR时,模型位于中心。

http://viewervr.herokuapp.com/

当前代码,我正在尝试调整相机位置

document.getElementById("toolbar-vrTool").addEventListener("click", function () {
   let _navapi = viewer.navigation;
   let _camera = _navapi.getCamera();

   let xValue = viewer.getCamera().position.x;
   let yValue = viewer.getCamera().position.y;
   let zValue = viewer.getCamera().position.z;

   zValue = zValue * 0.5;
   yValue = (zValue * 0.7071) * -1;

   _camera.position.set(xValue, yValue, zValue);
});

当前视图

Current view

查看我想要

View I would like to have

1 个答案:

答案 0 :(得分:1)

有一个名为fitToView()的函数可以完全按照您的意愿执行。但是在使用之前,您需要等待几何体完全加载。我还在下面的示例中添加了对setHomeViewFrom()的调用,将Home位置重置为fitToView()位置结果,以便以后导航。

oViewer.addEventListener (Autodesk.Viewing.GEOMETRY_LOADED_EVENT, onViewerGeometryLoaded) ;


function onViewerGeometryLoaded () {
    oViewer.removeEventListener (Autodesk.Viewing.GEOMETRY_LOADED_EVENT, onViewerGeometryLoaded) ;
    oViewer.fitToView (true) ;
    setTimeout (function () { oViewer.autocam.setHomeViewFrom (oViewer.navigation.getCamera ()) ; }, 1000) ;
}