在移动 VR 中打造视角

Forge view angle in mobile VR

在移动设备上启动 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);
});

当前视图

查看我想要的

有一个名为 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) ;
}