0

我想在合并两个网格后得到的这个特定对象“结果”上获得 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);

在这里,我有一个盒子和一个 latheGeometry。联合完成后,我得到随机的纯色丑陋物体。相反,我应该得到 LambertMaterial 白色对象。

图片:http: //imgur.com/a/nbSq1

4

1 回答 1

0

您可以在调用时应用材料ThreeBSP.toMesh()

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

或在生成的网格上创建之后:

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

于 2016-05-02T14:42:45.150 回答