我正在尝试渲染几何图形,每个面都用随机颜色着色。
我遍历Escape
并为每张脸设置一个随机颜色。在那之后我创建了一个新材料,它被添加到网格中。在我看来,我已经设置了所有必要的标志,但我的物体仍然在场景中呈现黑色。
场景包含两个方向灯以及环境光。如果我使用geometry.faces
,对象也会显示为黑色,但会有一些来自定向光的反射。
以下是代码:
THREE.MeshPhongMaterial
我使用的是最新版本的three.js:r84
有人看到我错过的东西吗?
答案 0 :(得分:0)
咦!我知道了! 我们不能只为面部指定颜色,但我们需要将它分配给每个顶点。是的,那么我们有插值,这不是我想要的东西,但至少我们可以看到颜色。如果有人知道如何在没有插值的情况下直接为脸部指定颜色,我将不胜感激!
这是代码的新版本,只需调整for
循环:
var faceIndices = [ 'a', 'b', 'c' ];
for ( var i = 0; i < geometry.faces.length; i ++ ) {
var face = geometry.faces[ i ];
for( var j = 0; j < 3; j++ ) {
color = new THREE.Color( 0xffffff );
color.setHex( Math.random() * 0xffffff );
face.vertexColors[ j ] = color;
}
}