不要在three.js中的obj模型上加载纹理

时间:2018-09-21 17:49:24

标签: javascript three.js

您可以提供帮助,为什么纹理无法加载

我试图将纹理加载到obj中的单独网格上,但是由于某种原因,纹理无法加载,并且给出错误,任何人都可以说出原因是什么 应用了材质,但是纹理是为什么没有

var manager = new THREE.LoadingManager();
var loader = new THREE.ImageLoader(manager);

var textureBody = new THREE.Texture();

loader.load('tex/Base4.png', function(image) {
  textureBody.image = image;
  textureBody.needsUpdate = true;
});

var meshes = [];    
var objLoader = new THREE.OBJLoader();

objLoader.load('models/bas.obj', function(object) {
  console.log(object);

  object.traverse(function(child) {
    if (child instanceof THREE.Mesh) {
      meshes.push(child);
    }
  });

  var body = meshes[2];

  body.position.y = 2;

  scene.add(body);

  var bumpMapBody = new THREE.TextureLoader().load('tex/untitled2-NM_u0_v0.tif');

  body.material = new THREE.MeshPhonglMaterial({

    map: textureBody
  });
});

这会显示错误消息:

  

未捕获的TypeError:THREE.MeshPhonglMaterial不是构造函数   在mucode.js:77“ body.material = new THREE.MeshPhonglMaterial({”在Object.onLoad(OBJLoader.js:385)   在XMLHttpRequest。 (three.js:32008)

ps 有谁知道如何缩小窗口并将画布移动到单独的div

1 个答案:

答案 0 :(得分:1)

您的代码中有错字。不是MeshPhonglMaterial,而是MeshPhongMaterial