尝试用不同的颜色绘制每个立方体面时,我发现了一个螺纹,提出了一种实现此目的的方法:
var geometry = new THREE.BoxGeometry(5, 5, 5);
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
});
Run Code Online (Sandbox Code Playgroud)
但是使用three.js r86,我得到以下结果:
得到了组成每个面孔的三角形,分别绘制。
为了达到理想的效果,我对上面的代码进行了以下修改:
var geometry = new THREE.BoxGeometry(5, 5, 5);
for ( var i = 0; i < geometry.faces.length; i += 2 ) {
var faceColor = Math.random() * 0xffffff;
geometry.faces[i].color.setHex(faceColor);
geometry.faces[i+1].color.setHex(faceColor);
}
var material = new THREE.MeshBasicMaterial({
color: 0xffffff,
vertexColors: THREE.FaceColors
});
Run Code Online (Sandbox Code Playgroud)
但这一切似乎有点奏效了!