小编art*_*bii的帖子

更改 Forge 中的材料

目前,我们正在让客户端在页面加载时检索对象状态(这将导致模型中的“待处理”对象变成不同的颜色)。然后我们轮询更改以更新着色(首先:当查看器加载时,挂起的对象会着色,然后我们继续轮询以再次检查和更改状态,以使 Forge 以不同的颜色渲染它们并存储它们的旧颜色/材质。当轮询收到一个对象不应再着色的更改时,它会告诉 Forge 再次使用旧的颜色/材质。

问题: 我们已经找到了问题所在,但不知道如何解决它。问题是,在 Forge 中更改材质在启动后不再起作用,它只在前 3 秒左右起作用(材质用于显示颜色)。

但是,即使在前约 3 秒后,设置叠加层仍然有效(显示叠加层而不是材质来显示颜色)。这不是我们想要实现的目标。这看起来未经优化,因为覆盖层将显示在所有内容中。

然而,这些材料似乎被“锁定”,即在前 3 秒后就无法再更改。好像没有刷新什么的

在示例中,我们发现他们使用viewer.impl.invalidate(true) 来刷新Forge 查看器,但在约3 秒后没有执行任何操作。

我们还尝试了viewer.impl.invalidate(true, true, true) 的每种组合以及将material.needsUpdate 设置为true,以及尝试重新渲染整个场景。

我们还发现了这个: https: //github.com/mrdoob/third.js/issues/790,但我们在 Forge 中找不到一个好的方法来做到这一点,我们尝试了viewer.requestSilentRender(),但没有成功做任何事。

不管怎样,我们已经尝试了一切我们能想到的并且可以在网上找到的材料来使材料发挥作用,但没有任何效果。我们正在寻找对 Forge 工作原理更有经验的人,能够看到材料代码哪里出了问题。

至于内容,这里是您需要了解正在发生的情况的所有代码: DROPBOX LINK

这是设置颜色的“index.html”文件的一小部分:

try
{
   viewer.restoreAllColorOverlays(); //for materials instead of overlays: viewer.restoreAllColorMaterials();
   $.each(colors, function(color, selectionIds)
   {
      viewer.setColorOverlay(selectionIds, color); //for materials instead of overlays: viewer.setColorMaterial(selectionIds, color);
   });
}
catch(error)
{
   console.error(error);
}
Run Code Online (Sandbox Code Playgroud)

autodesk-viewer autodesk-forge

6
推荐指数
1
解决办法
2066
查看次数

Bitbucket,不小心拉错了分支

我碰巧选择了错误的分支,因为我原本应该选择主分支,但最终却选择了开发分支。这确实合并了我的本地仓库。但是,我不想合并Bitbucket存储库。有什么办法可以撤销拉取或删除合并请求(见图)?

在此处输入图片说明

编辑:

我还没有对Bitbucket进行任何更改(是如图所示)。

git bitbucket

6
推荐指数
1
解决办法
160
查看次数

标签 统计

autodesk-forge ×1

autodesk-viewer ×1

bitbucket ×1

git ×1