更改模型的 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 不同
所以阴影会被打破~~~
更改模型颜色时,我的模型上出现了奇怪的阴影:
我已经尝试过不同的型号,但遇到了同样的问题。有什么想法这里可能有什么问题吗?
代码如下:
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 不同 所以阴影会被打破~~~