我下载了免费的3D模型,并尝试使用three.js进行查看。模型加载良好,但是材料加载不正确。唯一装载的是酒吧后面的酒瓶,没有其他东西应用任何纹理。
Example site showing problem here
这是我在模型中的加载方式:
// load in the bar 3d model
var mtlLoader = new THREE.MTLLoader();
mtlLoader.load( 'bar1/3d-model.mtl', function ( materials ) {
materials.preload();
var objLoader2 = new THREE.OBJLoader2();
objLoader2.setMaterials( materials.materials );
objLoader2.load( 'bar1/3d-model.obj', function ( event ) {
scene.add( event.detail.loaderRootNode );
}, function() {
// success
}, function() {
// error
});
});
答案 0 :(得分:1)
如果查看OBJ文件使用的the MTL file,您会发现它没有任何对纹理贴图的引用。纹理贴图通常用以下行引用:
Properties/Items/Targets
如果您的模型不包含它们,则可以使用3D编辑器(如Blender)添加它们。有关更多信息,请查看Texture Maps section of the OBJ file format。