Javascript 纹理渲染问题

Javascript 纹理渲染问题,javascript,3d,three.js,Javascript,3d,Three.js,嘿,好了 我在OBJ导入模型上渲染纹理时遇到问题 在该图像中,您可以看到纹理的渲染方式 在这里,您可以看到纹理的外观(映射到对象) 这是我的代码: loader = new THREE.ImageLoader(); loader.load('./tex/Stuhl1-vorn.jpg', function (image) { var imageObj = new Image(); imageObj.src = $(image).

嘿,好了

我在OBJ导入模型上渲染纹理时遇到问题

在该图像中,您可以看到纹理的渲染方式

在这里,您可以看到纹理的外观(映射到对象)

这是我的代码:

      loader = new THREE.ImageLoader();
      loader.load('./tex/Stuhl1-vorn.jpg', function (image) {
          var imageObj = new Image();
          imageObj.src = $(image).prop('src');

          var canvas = document.createElement("canvas");
          canvas.width = imageObj.width;
          canvas.height = imageObj.height;

          var ctx = canvas.getContext("2d");
          ctx.drawImage(imageObj, 0, 0, imageObj.width, imageObj.height, 0, 0, canvas.width, canvas.height);

          texture.image = canvas;
          texture.needsUpdate = true;
      });

      var material = new THREE.MeshLambertMaterial({
          map: texture,
          needsUpdate: true
      });

      var loader = new THREE.OBJLoader(manager);
      loader.load('obj/sitz.obj', function (object) {
          object.traverse(function (child) {
              if (child instanceof THREE.Mesh) {
                  child.material = material;
                  child.side = THREE.FrontSide;
              }
          });

          object.position.y = -400;
          scene.add(object);

      }, onProgress, onError);

在我看来,您导入的模型没有uvw坐标。
将模型加载到三维建模程序中,添加uvw坐标,使用uvw坐标导出

或者,如果您想在代码中执行此操作,那么以下问题/答案可能会有所帮助: