使用THREE.CylinderGeometry的多种材质 - 从圆柱体创建一个轮子

时间:2013-11-30 12:58:28

标签: three.js

我想从圆柱体创建一个轮子(因为导入3D模型会使其变慢)。但是我不能使用具有圆柱几何的多种材料。它仅使用数组中的第一个材质。

    var geometry = new THREE.CylinderGeometry(this.diameterWheel/2,this.diameterWheel/2,this.lastikGenisligi, 20, 4);

    var materialArray = [];
    materialArray.push(new THREE.MeshBasicMaterial( { color: 0x000000 }));
    materialArray.push(new THREE.MeshBasicMaterial( { map: THREE.ImageUtils.loadTexture( '../textures/wheel.png' ) }));
    materialArray.push(new THREE.MeshBasicMaterial( { color: 0x0000FF }));
    materialArray.push(new THREE.MeshBasicMaterial( { color: 0xFF0000 }));

    var material = new THREE.MeshFaceMaterial(materialArray);

    var mesh = new THREE.Mesh(geometry, material);

我想要创建的是一个轮子,它在上侧和下侧都有wheel.png轮子图像,在它们之间有黑色覆盖。

1 个答案:

答案 0 :(得分:0)

您需要遍历圆柱体上的每个面,并告诉面部使用哪种阵列材质。

geometry.faces[a].materialIndex = b;

其中a是面部索引。你需要弄清楚自己哪个面是通过某个系统选择正确的材料,即。使用一种颜色等面向0-10。这取决于圆柱几何参数。而b是物质指数。