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