2017-08-30 46 views
0

我正在使用这个线框扩展https://autodeskviewer.com/viewers/latest/extensions/Wireframes/Wireframes.js 我稍微修改了它的颜色。线框扩展在每个更新上卸载线

如果我稍微移动相机,所有的线条消失,并且由于我们的应用程序不断从传感器获取输入信息,我们最终得到的线条总是不显示。

enter image description here

我找不到什么让这些线消失。我怎样才能让这些始终可见?

这也恰好在这个例子中,你可以复制:

enter image description here

回答

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中查看大型模型时会损害性能。

渐进式渲染是观众渲染大型模型的方式。不幸的是,现在无法防止并修复。

下面是它看起来像在我身边:

https://imgur.com/a/TnlzW

+0

我注意到,如果我这些行添加到'scene',而不是'sceneAfter'然后当我移动模型,他们留下来。但现在又出现了另一个问题,他们走在模型的网格后面:https://media.giphy.com/media/xT9IgoZKCeTbnYqZA4/giphy.gif关于如何使它们到网格前面的任何想法?就像他们在Phillipe的旧线框范例一样。 – shinzou

+0

更新后的答案中提供了解决此问题的解决方法。希望能帮助到你。 –

+0

它的效果很好。谢谢。 – shinzou