2

我在尝试使用 three.js 将以下模型导入 WebGL 时遇到一些问题:

http://tf3dm.com/3d-model/vanille-99084.html

我已经使用 three.js 附带的转换器将 obj 文件转换为 JSON,并且在使用 JSON Loader 时模型可以正常工作。但是,当尝试使用 .mtl 文件中的纹理加载模型时,OBJMTLOader 会失败。

我正在使用以下示例,只是将路径替换为我的文件的路径:

https://github.com/mrdoob/three.js/blob/master/examples/webgl_loader_obj_mtl.html

更新:

我已经取得了一些进展。出于某种原因,我认为我需要导入 JSON 转换的 OBJ 而不是 obj 文件本身。因此,现在我已经引用了正确的 .obj 文件,模型已正确导入。但是,纹理仍未加载。目前整个模型/网格只是黑色的。

任何帮助表示赞赏

4

2 回答 2

4

看来问题是由于模型附带的 .TGA 文件造成的。显然,threejs 无法解析 TGA 文件。因此解决方案是使用 Photoshop 将 TGA 文件转换为纯 PNG,然后更新 .mtl 文件以引用 PNG 而不是 TGA 文件。

于 2013-10-22T13:51:38.080 回答
1

如果您不想进行 TGA 到 PNG 的转换,也有一个 TGA 加载器。

        var texture = loader.load( 'textures/crate_color8.tga' );
        var material = new THREE.MeshPhongMaterial( { color: 0xffffff, map: texture } );
        var mesh = new THREE.Mesh( geometry, material );

来自 http://threejs.org/examples/webgl_materials_texture_tga.html

于 2014-11-10T11:39:04.980 回答