【问题标题】:Set color of object (Autodesk forge)设置对象的颜色(Autodesk forge)
【发布时间】:2019-06-10 17:29:09
【问题描述】:

这适用于没有任何颜色的模型:

 this.viewer.setThemingColor(node, red, this.model);

但不适用于带有颜色对象的模型。

docs你可以阅读:

使用与 原始物体的材质。

混合?这是什么意思?如果对象已经有颜色,如何为它设置颜色?

附注: 对 Viewer 的 Typescript 类型定义真的很有帮助。

更新

认为它与对象的类型有关。

我在同一项目上同时运行了 isolatesetThemingColor(红色)。

在下面的截图中,右下角的红色门被选中:

它有一个“材料”标题。

在此屏幕截图中,选择了它旁边的门(绿松石色)。它缺少材料标题。

我是否需要“应用”材料或其他东西以使其变色?

【问题讨论】:

    标签: autodesk-forge


    【解决方案1】:

    您是否提供了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 定义,它们可能很快就会发布。敬请期待!

    【讨论】:

    • 是的,我提供了 THREE.Vector4 颜色。正如我所说,它适用于没有为对象设置任何颜色的模型(它们都是灰色的)。但它不适用于从一开始就具有颜色的对象。我之前不需要运行任何函数来“覆盖”原始颜色?
    • 不,没有,通过混合,正如函数名称所暗示的那样,它为您的对象添加辅助(主题)颜色,保持其原始颜色作为主要颜色。如果可能的话,你能告诉我模型和你的代码吗(比如 jsfiddle 上的快速演示)?或者,您可以尝试设置模型的材质(请参阅here)。在此之前,您可能还想检查您是否在Viewer v6,这样我们就不会让旧时代的错误妨碍我们
    • 参见此处了解如何应用自定义材料:forge.autodesk.com/blog/…
    猜你喜欢
    • 2021-04-26
    • 2020-08-06
    • 2020-10-27
    • 1970-01-01
    • 2020-09-19
    • 2018-02-27
    • 2020-11-03
    • 2021-11-11
    • 1970-01-01
    相关资源
    最近更新 更多