2013-02-17 3 views
9

Я действительно нашел this вопрос, но он говорит, что material.color не существует. Мне нужно знать, как изменить цвет различных граней куба я рисунок:Измените цвета кубических граней

var newCube = new THREE.Mesh(new three.CubeGeometry(size, size, size), new three.MeshNormalMaterial({ vertexColors: three.FaceColors })); 

ответ

31

Вот как устанавливать и изменять цвета граней куба в:

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

4

Здесь 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.