我实际上发现this的问题,但它说material.color
不存在。我需要知道如何改变一个立方体我画的各个面的颜色:更改立方体脸部的颜色
var newCube = new THREE.Mesh(new three.CubeGeometry(size, size, size), new three.MeshNormalMaterial({ vertexColors: three.FaceColors }));
我实际上发现this的问题,但它说material.color
不存在。我需要知道如何改变一个立方体我画的各个面的颜色:更改立方体脸部的颜色
var newCube = new THREE.Mesh(new three.CubeGeometry(size, size, size), new three.MeshNormalMaterial({ vertexColors: three.FaceColors }));
这里是你如何设置和改变一个立方体的脸的颜色:
var geometry = new THREE.BoxGeometry(size, size, size);
for (var i = 0; i < geometry.faces.length; i ++) {
geometry.faces[ i ].color.setHex(Math.random() * 0xffffff);
}
var material = new THREE.MeshBasicMaterial({ color: 0xffffff, vertexColors: THREE.FaceColors });
如果geometry.faces[i].color
在几何被渲染后变为,则必须设置geometry.colorsNeedUpdate = true
。 (这是不需要canvasRenderer
。)
three.js所r.84
这里is a fiddle对于谁在这里结束,并希望看到这个代码工作的人。
我制成的盒子和绑3种颜色的面:
// colors
red = new THREE.Color(1, 0, 0);
green = new THREE.Color(0, 1, 0);
blue = new THREE.Color(0, 0, 1);
var colors = [red, green, blue];
for (var i = 0; i < 3; i++) {
geometry.faces[4 * i].color = colors[i];
geometry.faces[4 * i + 1].color = colors[i];
geometry.faces[4 * i + 2].color = colors[i];
geometry.faces[4 * i + 3].color = colors[i];
}
面部颜色在animate
循环改变。