MTL Loader正试图从错误的路径加载纹理。 这是错误:
GET http://localhost:63342/untitled2/Users/yuqingyang/Downloads/imac%20(1)/mac_keyb.jpg 404 (Not Found)
它应该是:
http://localhost:63342/untitled2/mac_keyb.jpg
这是我的代码:
var objLoader = new THREE.OBJLoader();
var mtlLoader = new THREE.MTLLoader();
mtlLoader.setTexturePath(".");
mtlLoader.load("istuff.mtl",function (materials) {
materials.preload();
objLoader.setMaterials(materials);
objLoader.load("istuff.obj", function ( object ) {
scene.add(object);
})
我使用Blender导出文件,然后在桌面上创建原始的blender文件,这些纹理图像位于/Users/yuqingyang/Downloads/
此路径下。
然后我将所有图像的blender文件复制到~/PhpProjects/untitle2
更新: 我想我发现了问题,mtl文件不能以某种方式导出:
newmtl clear_glass
Ns 96.078431
Ka 1.000000 1.000000 1.000000
Kd 0.000000 0.000000 0.000000
Ks 0.500000 0.500000 0.500000
Ke 0.000000 0.000000 0.000000
Ni 1.000000
d 1.000000
illum 2
newmtl keyboard_layout
Ns 96.078431
Ka 1.000000 1.000000 1.000000
Kd 0.398431 0.398431 0.398431
Ks 0.500000 0.500000 0.500000
Ke 0.000000 0.000000 0.000000
Ni 1.000000
d 1.000000
illum 2
map_Kd /Users/yuqingyang/Downloads/imac (1)/mac_keyb.jpg
newmtl light
Ns 96.078431
Ka 1.000000 1.000000 1.000000
Kd 0.724706 0.724706 0.724706
Ks 0.500000 0.500000 0.500000
Ke 0.000000 0.000000 0.000000
Ni 1.000000
d 1.000000
illum 2
只有keybord的mad_Kd属性路径错误。