Three.js CSG如何更改结果's的材质和颜色

Three.js CSG How to change result's material and color?

本文关键字:颜色 CSG js 何更改 结果 Three      更新时间:2023-09-26

我想在这个特定对象的"结果"上获得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白色对象。

图片:https://i.stack.imgur.com/cJzUC.jpg

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

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

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

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