【发布时间】:2019-01-18 04:45:47
【问题描述】:
我下载了一个免费的 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
});
});
【问题讨论】:
-
您的 .mtl 文件不包含对纹理文件的任何引用,我想您可能想查看源代码:您从哪里导出,以及如何导出? (除非您使用“纹理”来表示“具有某些细节的程序材质定义”......从源到实时渲染器很难获得相似的外观)。
-
嗯,好的。我从这里下载了它:cgtrader.com/free-3d-models/interior/office/wine-bar 并使用了 obj 和 MTL 拉链。我只是假设它会像在图像中一样呈现出来。我必须自己将纹理链接到材料吗?
标签: javascript three.js 3d