It seems like this solution might help with what you're looking for (even though I'm not too familiar with Three.js):
The important thing, as mentioned by user morris4, is to set the colors on the face rather than the geometry itself.
Make sure to also specify the 'vertexColors' property in the material so that it displays correctly.
var renderer = new THREE.WebGLRenderer();
renderer.setSize( window.innerWidth, window.innerHeight );
document.body.appendChild( renderer.domElement );
var scene = new THREE.Scene();
var camera = new THREE.PerspectiveCamera( 75, window.innerWidth / window.innerHeight, 0.1, 1000 );
geometry = new THREE.CubeGeometry( 10, 10, 10 );
for ( var faceIndex in geometry.faces )
{
var face = geometry.faces[ faceIndex ];
face.vertexColors[ 0 ] = new THREE.Color(0xFF0000);
face.vertexColors[ 1 ] = new THREE.Color(0x00FF00);
face.vertexColors[ 2 ] = new THREE.Color(0x0000FF);
face.vertexColors[ 3 ] = new THREE.Color(0xFFFFFF);
}
var material = new THREE.MeshBasicMaterial({ color: 0xFFFFFF, vertexColors: THREE.VertexColors });
var object = new THREE.Mesh( geometry, material );
object.position.z = -25;
scene.add(object);
function render() {
requestAnimationFrame(render);
object.rotation.x += 0.01;
object.rotation.y += 0.01;
renderer.render(scene, camera);
}
render();
I've uploaded this code snippet to a fiddle at: http://jsfiddle.net/87mcD/3/
Keep in mind that this was tested on r54 and may not work exactly the same on newer versions like r63.
However, it could still be useful for your project...
EDIT: Here's an updated fiddle for three.js r.63: http://jsfiddle.net/87mcD/4/