【问题标题】:Cloning a viewer material克隆查看器材料
【发布时间】:2019-01-24 03:30:00
【问题描述】:

我想在查看器中覆盖组件的颜色,以保持与其他组件相同的渲染效果我想克隆现有材质并简单地修改克隆的颜色。

我可以按如下方式更改现有材质的颜色:

var renderProxy =
  viewer.impl.getRenderProxy(
    model, fragIds[0])

renderProxy.material.setHex(0xFF0000)

这会影响模型中使用该材料的所有其他组件,这不是预期的结果。

为此,我想克隆材料,修改它并将新材料影响到特定组件。调用 material.clone() 方法正在工作:

var newMat = renderProxy.material.clone()
newMat.setHex(0xFF0000)

但新材质将失去所有使其在渲染器中看起来不错的特定属性。

所以我的问题是“有没有一种方法可以轻松地克隆查看器材料,而无需为每个属性编写克隆代码”?

【问题讨论】:

    标签: autodesk-forge autodesk-viewer


    【解决方案1】:

    您需要克隆“棱镜”材质,而不是 3js phong-material。

    从这个 repo 开始:https://github.com/wallabyway/fusion-chair-configurator

    例如,要创建“金属”材质,请使用这两行代码(并复制 initPaint() 函数)。

    https://github.com/wallabyway/fusion-chair-configurator/blob/c6d5bd575cdf40194c9fbdd1c5f9bb27c70b356e/docs/js/app.js#L107-L108

    szPrism json 字符串,包含很多参数。棱镜材质相当复杂,但您可以通过了解 Autodesk Cloud Render ART 帮助页面的这篇文章(Revit2019、Fusion360 等内置的实时渲染器)了解更多关于这些参数的作用...

    http://help.autodesk.com/view/ARENDERING/ENU/?guid=GUID-49345267-CE6A-4006-BB58-5BEAFD8B0D0E

    尝试使用 Fusion360 的“渲染”模式。首先打开“外观”并创建一些自定义材料。您可以实时修改它们的参数,以更好地了解它们的作用并获得您想要的效果。

    这是一个关于 Fusion360 自定义材质的教程视频:https://www.youtube.com/watch?v=D9AS5rQhtPo

    如果有帮助,请告诉我。

    【讨论】:

      猜你喜欢
      • 2019-09-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-12
      • 2018-07-28
      • 1970-01-01
      • 2020-04-22
      相关资源
      最近更新 更多