【发布时间】:2019-01-10 06:24:39
【问题描述】:
我正在尝试更改几何图形中单个面的颜色。
我用几何和材质初始化了我的网格,如下所示:
const geometry = new THREE.Geometry({
// some options
});
const material = new THREE.MeshBasicMaterial({
color: '0xff0000', // red
side: THREE.DoubleSide,
vertexColors: THREE.FaceColors,
flatShading: true,
});
然后我使用鼠标坐标和raycaster的交点查找方法找到了我要着色的目标面。
最后,我尝试在我的目标脸上应用颜色:
targetFace.color.setHex(0x0000ff);
mesh.material.colorsNeedUpdate = true;
我希望目标脸的颜色从红色变为蓝色,但脸最终变成黑色。我做了一些谷歌搜索,发现脸部的颜色“乘以”最初在材质上设置的颜色,最终混合了两种颜色。
我怎样才能避免这种情况并将面部颜色更改为我想要的确切颜色?
当前结果
预期结果
【问题讨论】:
标签: three.js