如何消除透明材料中的暗区?

时间:2017-04-25 08:05:32

标签: javascript three.js

我在浏览器中展示了一个带有three.js的鞋子模型。当我将鞋跟设置为半透明材料时,我遇到了问题。我在项目中使用了orbitControls,当我旋转到某个角度时,半透明材质会显示暗点和碎片三角形?

enter image description here

我希望它看起来像这样:

如何更改材质属性以将材质设置为纯色?我已经设置了像这样的材料道具

new THREE.MeshPhongMaterial({
    color: 0xff0000,
    specular: materialParams.material3d.specular,
    shininess: materialParams.material3d.shininess,
    transparent: true,
    opacity: materialParams.material3d.opacity,       
    map: that.textureLoader.load(this.sourceUrl + 
    materialParams.material3d.icon),
    side: THREE.DoubleSide,
    blending: THREE["NormalBlending"]

})

1 个答案:

答案 0 :(得分:0)

半透明面按它们在缓冲区中出现的顺序呈现。这可能会导致人工制品或黑斑"在半透明材料中。

由于"脚跟的几何形状"似乎是凸起的,一个可以令人满意的简单修复就是只渲染正面:

mesh.material.side = THREE.FrontSide;

当材质透明且几何图形更复杂时,您可能需要尝试其他解决方案。在this answer;

中解释了一种替代方法

three.js r.85