由于r72我无法更新几何顶点的颜色,这是一个已知问题还是我错过了什么?
这里的代码适用于r71但不适用于r72 / 73
updateVertexColors: function(geometry) {
var faceIndices = ['a', 'b', 'c', 'd'];
for(var i = 0; i < geometry.faces.length; i++) {
var f = geometry.faces[i];
var n = (f instanceof THREE.Face3) ? 3 : 4;
for(var j = 0; j < n; j++) {
var vertexIndex = f[faceIndices[j]];
var p = geometry.vertices[vertexIndex];
var color = this.lut.getColor(Math.abs(p.x));
f.vertexColors[j] = color;
}
}
geometry.colorsNeedUpdate = true;
},
颜色被正确分配,但在渲染时不会更新。
感谢。
答案 0 :(得分:4)
如果您在colorsNeedUpdate
上设置THREE.Geometry
- 或设置任何needsUpdate
标记 - 并且它似乎无效,请确保您不像这样重新分配值:
face.vertexColors[ j ] = color;
相反,这样做:
face.vertexColors[ j ].copy( color ); // or use .set(), .setHex, etc.
这可能是库中的错误或限制。
three.js r.73
答案 1 :(得分:0)
这对我有用(更新为随机颜色):
face.color.setHex('0x' + Math.floor(Math.random() * 16777215).toString(16));