three.js:用于拉伸几何体的多材质问题

我使用three.js" title="three.js">three.js拉伸功能来绘制几何体,并且我想添加2个纹理,一个用于顶部和底部,另一个用于其他边。three.js:用于拉伸几何体的多材质问题

根据This Post它似乎是可能的。但我无法做到这一点。

这里是我的代码:

//Create BaseForm (Bottom) 

var shape = new THREE.Shape();

shape.moveTo(0,0);

shape.lineTo(0,2);

shape.lineTo(0.5,1.5);

shape.lineTo(1,2);

shape.lineTo(1,0);

shape.lineTo(0.5,0.5);

shape.lineTo(0,0);

//Extrude XScores

var extrudeSettings={amount: 50, bevelEnabled: false, material: 0, extrudeMaterial: 1, steps: 10};

var geometry = new THREE.ExtrudeGeometry(shape, extrudeSettings);

var material1 = new THREE.MeshStandardMaterial({color: 0x111111, roughness: 0.1, metalness: 0.4, side: THREE.DoubleSide});

var material2 = new THREE.MeshStandardMaterial({color: 0x8dbe8d, roughness: 0.7, metalness: 0, side: THREE.DoubleSide});

var materials = [

material1,

material2];

var localmesh = THREE.SceneUtils.createMultiMaterialObject(geometry,materials);

return localmesh;

,但只有一个纹理适用于所有的面孔(材料2)。

注意:因为我在挤压小物件时遇到问题,所以我使用了耳朵。

感谢你的帮助,

回答:

你需要做的是这样的:

var localmesh = new THREE.Mesh(geometry, materials); 

THREE.SceneUtils.createMultiMaterial()是用于其他目的。它只是创建两个相同几何体的对象,但在同一个地方使用不同的材质。

以上是 three.js:用于拉伸几何体的多材质问题 的全部内容, 来源链接: utcz.com/qa/261778.html

回到顶部