【问题标题】:Weird shadows when changing the material of a model更改模型材质时出现奇怪的阴影
【发布时间】:2017-06-07 17:46:47
【问题描述】:

当我改变我的模型的颜色时,我的模型上出现了奇怪的阴影:

我已经尝试了不同的模型,但遇到了同样的问题。有什么想法可能有什么问题吗?

代码如下:

   async foo() {

    let myMaterial = this.addMaterial(0x7CD254);

    const leafNodeIds = await this.getLeafNodes();

    this.setMaterial(leafNodeIds, myMaterial);

  }

  addMaterial(color) {

    var material = new THREE.MeshPhongMaterial({
      color: color
    });

    this.viewer.impl.matman().addMaterial(
      this.guid(),
      material);

    return material;
  }

  static async setMaterial(dbId, material) {

    var fragIds = await this.getFragIds(dbId);

    fragIds.forEach((fragId) => {

      this.viewer.getFragmentList().setMaterial(
        fragId, material);
    });
  }

编辑:不同的角度,显示这些奇怪的阴影也出现在顶部

【问题讨论】:

  • 您是否使用了不同的灯光预设并从外观设置中关闭了抗锯齿?
  • 嗨 Philippe,我尝试了大多数预设,但这不起作用:(你如何更改抗锯齿?。我可以在文档中找到与抗锯齿相关的唯一内容查看器的功能是:setQualityLevel(bool,bool)(在这里关闭它并没有解决我对阴影材质的问题)
  • 从UI,设置(齿轮图标,第3个工具栏上的第3个按钮,上图从左开始),然后在“外观设置”中查看,抱歉需要转的设置OFF 是“环境阴影”,这绝对是造成这种丑陋效果的原因。但在 API 方面,它由“viewer.setQualityLevel(bool,bool)”控制
  • 啊,谢谢菲利普,这成功了:D
  • 酷....... :)

标签: autodesk-forge autodesk-viewer


【解决方案1】:

感谢 Philippe Leefsma 找到正确的解决方案。

您必须通过任一方式关闭环境阴影选项

  • 取消选择 UI 菜单中的选项(齿轮图标)
  • 或通过在代码中使用 viewer.setQualityLevel(bool,bool) 函数并将第一个参数设置为 false

【讨论】:

    【解决方案2】:

    为什么不换一种新颜色.... material.color=new THREE.Color(0,0,0);// like this

    forge 的 phongmaterial 和 ThreeJS 不一样 所以阴影会被打破~~~

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-05-25
      • 1970-01-01
      • 2017-04-20
      • 2020-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-20
      相关资源
      最近更新 更多