这适用于没有任何颜色的模型:
this.viewer.setThemingColor(node, red, this.model);
但不适用于带有颜色的对象的模型。
在docs中,您可以阅读:
突出显示具有主题色的对象,该主题色与 原始对象的材料。
混合吗?这是什么意思?如果对象已经有颜色,如何设置颜色?
P.S: 查看器的Typescript类型定义确实会有所帮助。
更新
认为它与对象的类型有关。
我在同一项目上同时运行了isolate
和setThemingColor
(红色)。
它有一个“实质”标题。
在此屏幕截图中,选中了它旁边的门(青绿色)。它缺少材料标题。
我是否需要“应用”材料或使它变色的东西?
答案 0 :(得分:0)
您是否提供了THREE.Vector4
对象作为颜色或第二个参数?只是深入研究代码,它不是任何类型检查逻辑,如果给出了错误的类型,则会导致您的错误。另外,请确保将正确的模型对象作为第三个参数,否则当您有多个模型时,渲染器将不知道应用哪个模型的颜色。
您可以在下面详细了解此方法的用法: https://forge.autodesk.com/en/docs/viewer/v6/reference/javascript/viewer3d/#setthemingcolor-dbid-color-model
编辑: 如果该组件缺少材料,请参见此处,了解如何添加自定义组件:https://forge.autodesk.com/blog/using-dynamic-texture-inside-custom-shaders
PS:我们正在研究Viewer和Forge SDK的TypeScript定义,它们可能很快就会发布。敬请期待!