Wireframes扩展在每次更新时卸载行

时间:2017-08-30 12:48:56

标签: autodesk-forge autodesk autodesk-viewer

我正在使用此线框扩展程序https://autodeskviewer.com/viewers/latest/extensions/Wireframes/Wireframes.js 我略微修改了它的颜色。

如果我稍微移动相机,所有线条都会消失,因为我们的应用程序不断从传感器获得输入,我们最终总是没有显示线条。

enter image description here

我无法找到使这些线条消失的原因。如何使这些始终可见?

在这个例子中也可以重现:

enter image description here

1 个答案:

答案 0 :(得分:1)

在我的研究之后避免这个问题的另一种方法。您可以将这些线框几何图形添加到查看器叠加层中,而不是使用impl.sceneimpl.sceneAfter。以下是变通方法的片段:

//!-- 1. Add this two line in the `load` function.
if( this.viewer.impl.overlayScenes[this.overlayName] === undefined )
    this.viewer.impl.createOverlayScene( this.overlayName );

//!-- 2. Modified `addWireframes` with overlay functions
function addWireframes(viewer, overlayName, groups) {
    var groupsCount = groups.length;
    for (var i = 0; i < groupsCount; ++i) {
        viewer.impl.addOverlay( overlayName, groups[i] );
    }
    viewer.impl.invalidate(false, true, true);
}

//!-- 3. Modified `revertWireframes` with overlay functions
function revertWireframes(viewer, overlayName, groups) {
    var groupsCount = groups.length;
    for (var i = 0; i < groupsCount; ++i) {
        viewer.impl.removeOverlay( overlayName, groups[i] );
    }
    viewer.impl.invalidate(false, true, true);
}

//!-- 4 Update `impl.invalidate` function calls
viewer.impl.invalidate(false, true, true);

//!-- 5. Update function calls of both `addWireframes` and `revertWireframes`, for example:
addWireframes(this.viewer, this.overlayName, this.groups);
revertWireframes(this.viewer, this.overlayName, this.groups);

<强> P.S。因为这只是一种解决方法,而不是正式的解决方案。您必须自担风险使用它。

===旧答案

这可能是由渐进式渲染引起的,您可以通过viewer.setProgressiveRendering( false )将其关闭。但是在Forge Viewer中查看大型模型会损害性能。

渐进式渲染是观察者渲染大型模型的方式。现在不幸的是,它无法预防和修复。

这就是我身边的样子:

this