我想使用两个网格来创建一棵松树,一个用于树干,另一个用于灌木丛。这是我所做的:
松树的位置摆放得很好,但整个合并后的形状只使用了一个材质而不是两个(整个形状被第一个材料覆盖),我希望在合并时每个网格都有其各自的材质。
我做错了什么?有什么想法吗?
var pine_geometry = new THREE.Geometry();
var pine_texture_1 = THREE.ImageUtils.loadTexture('./res/textures/4.jpg');
var pine_geometry_1 = new THREE.CylinderGeometry(25, 25, 50, 6);
var pine_material_1 = new THREE.MeshBasicMaterial({
map : pine_texture_1
});
var pine_1 = new THREE.Mesh(pine_geometry_1);
pine_1.position.x = x;
pine_1.position.y = y + 25;
pine_1.position.z = z;
pine_1.updateMatrix();
pine_geometry.merge(pine_1.geometry, pine_1.matrix);
var pine_texture_2 = THREE.ImageUtils.loadTexture('./res/textures/5.jpg');
var pine_geometry_2 = new THREE.CylinderGeometry(0, 70, 250, 8);
var pine_material_2 = new THREE.MeshBasicMaterial({
map : pine_texture_2
});
var pine_2 = new THREE.Mesh(pine_geometry_2);
pine_2.position.x = x;
pine_2.position.y = y + 175;
pine_2.position.z = z;
pine_2.updateMatrix();
pine_geometry.merge(pine_2.geometry, pine_2.matrix);
var pine = new THREE.Mesh(pine_geometry, new THREE.MeshFaceMaterial([pine_material_1, pine_material_2]));
pine.geometry.computeFaceNormals();
pine.geometry.computeVertexNormals();
Game.scene.add(pine);
松树的位置摆放得很好,但整个合并后的形状只使用了一个材质而不是两个(整个形状被第一个材料覆盖),我希望在合并时每个网格都有其各自的材质。
我做错了什么?有什么想法吗?
MeshFaceMaterial
已被移除,请使用Array
代替。 - sohnryang