map不能处理three.js对象

时间:2014-10-16 09:13:15

标签: javascript three.js

function create_geometry_0(scene)
{
      var mesh;
      var material;
      var texture;
      var geometry;
         geometry = new THREE.BufferGeometry();
         geometry.attributes = {
         position: {
            itemSize: 3,
            array: new Float32Array([..my object..])
         },
         normal: {
            itemSize: 3,
            array: new Float32Array([..my object..])
         }
         };

         texture = THREE.ImageUtils.loadTexture('ull.jpg');
         texture.needsUpdate = true;

         material = new THREE.MeshPhongMaterial({
            color: 0xFF0000,
            ...other material stuff
//          map: texture
            });
         mesh = new THREE.Mesh(geometry, material);
         scene.add(mesh);

}

除非我将地图添加到我的素材中,否则一切都有效。但如果我添加地图,一切都会停止工作。我不知道为什么。我应该在纹理上添加任何其他内容吗?

1 个答案:

答案 0 :(得分:0)

终于有效了。我想我有两个问题。首先,我的物体没有任何纹理坐标。第二,也许我最好使用meshbasicmaterial而不是meshphongmaterial。顺便说一句,没有必要使用texture.needUpdate命令。现在我的材料代码是这样的:material = new THREE.MeshBasicMaterial({side:THREE.FrontSide,map:THREE.ImageUtils.loadTexture(' index_ABASI.jpg')});