Three.js CSG Как изменить материал и цвет результата?

Я хотел бы получить MeshLambertMaterial для этого конкретного "результата" объекта, который я получаю после объединения двух сеток:

var lathe = new THREE.Mesh(latheGeometry);
var cube_bsp = new ThreeBSP( lathe );

var box = new THREE.BoxGeometry( 2,30,3);

var sub = new THREE.Mesh( box );
sub.position = new THREE.Vector3(0,0,19);
var substract_bsp  = new ThreeBSP( sub );
var subtract_bsp  = cube_bsp.union( substract_bsp );

var result = subtract_bsp.toMesh(); 
    result.rotation.x = Math.PI * -0.5;
    scene.add(result);

Здесь у меня есть коробка и токарный станок Геометрия. После объединения я получаю случайный однотонный объект. Вместо этого я должен получить объект LambertMaterial белого цвета.

Изображения: http://imgur.com/a/nbSq1

1 ответ

Решение

Вы можете применить материал при звонке ThreeBSP.toMesh():

subtract_bsp.toMesh( new THREE.MeshLambertMaterial( {color:0xFFFFFF} ) );

или после создания на получившейся сетке:

result.material = new THREE.MeshLambertMaterial( {color:0xFFFFFF} ) );

Другие вопросы по тегам