three.js:同一张脸上的多种颜色

时间:2013-08-31 13:27:28

标签: three.js

我有一个尺寸为1 x 1 x 2的立方体。在较大的(1 x 2)面上,我想在脸的一半上显示一种颜色,在另一半上显示另一种颜色。推荐的实现方法是什么?我应该使用层次结构来构建这个1 x 1 x 2立方体,使用两个1 x 1 x 1不同面色的立方体吗?

1 个答案:

答案 0 :(得分:0)

以下是要遵循的模式。根据自己的喜好调整:

var geometry = new THREE.CubeGeometry( 10, 10, 20, 1, 1, 2 );

for ( var i = 0; i < geometry.faces.length; i ++ ) {
    geometry.faces[ i ].color.setHSL( Math.random(), 0.5, 0.5 ); // pick your colors
}

var material = new THREE.MeshBasicMaterial( { vertexColors: THREE.FaceColors } ); 

var mesh = new THREE.Mesh( geometry, material );

如果您使用的是CanvasRenderer,则可以设置material.overdraw = 0.5以尝试消除对角线。 WebGLRenderer不需要这样做。

three.js r.60