更改模型的 material 时出现奇怪的阴影

Weird shadows when changing the material of a model

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

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

代码如下:

   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 Leefsma 找到了正确的解决方案。

您必须关闭环境光阴影选项

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

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

forge 的 phongmaterial 与 ThreeJS 不同 所以阴影会被打破~~~