我尝试使用three.js collada加载器加载转换后的collada模型(obj - > collada [打开没有问题,包括工作uvs])。该模型使用assimp转换,这是一个开源的3d模型转换器。
我注意到的一点是转换后的collada模型里面有孩子,但我听说这没问题。但是,如果我将材质更改为具有纹理的内容,则会出现错误:“TypeError:uv2i未定义”。
只要我不使用纹理,模型就会加载。 https://dl.dropbox.com/u/2705276/bachelorShowcases/001/webGL_museum_wire.html
指定纹理时未加载模型: https://dl.dropbox.com/u/2705276/bachelorShowcases/001/webGL_museum.html
这是一个错误还是我做错了什么?
function load( model ){
loader.load( 'https://dl.dropbox.com/u/2705276/bachelorShowcases/001/xerox404_webglCONV.dae', createScene1 );
}
function createScene1( geometry ) {
dae = geometry.scene;
mesh = dae.children[0].children[0];
mesh.material = new THREE.MeshPhongMaterial({map:THREE.ImageUtils.loadTexture('https://dl.dropbox.com/u/2705276/bachelorShowcases/001/xeroxD.png')});
}
答案 0 :(得分:0)
如果你检查控制台,你会看到这个错误:
webGL_museum.html:461
Uncaught TypeError: Cannot read property 'u' of undefined three.js:17814
这基本上意味着您的模型没有UV。为了在模型中使用纹理,它需要有UV。