我正在使用three.js处理项目。 我有一个简单的模型(标准茶壶),我使用obj导出器从3DS Max导出一个简单的材料。
我可以使用OBJLoader加载模型,它显示没有任何问题,但是当我尝试加载相对MTL文件以获取材质和纹理时,我只是得到一种白色。
我几乎从OBJ-MTL导入示例(带有纹理的人)中复制粘贴代码,我还尝试了其他方法(遍历Object3D以获取网格以手动应用材质)
这是设置:
var mtlLoader = new THREE.MTLLoader();
mtlLoader.setMaterialOptions( {side: THREE.DoubleSide} );
mtlLoader.load('moonpot.mtl', function (materials) {
materials.preload();
console.log(materials.materialsInfo);
var objLoader = new THREE.OBJLoader();
objLoader.setMaterials(materials);
objLoader.load('moonpot.obj', function (object) {
scene.add(object);
});
我没有设置资源的路径,因为它们位于根文件夹中(并设置它无论如何都没有改变)。我正在从3DS Max导出,它可能是不兼容的吗?我从材质编辑器中将材质设置为Phong,因为我知道three.js有一个Phong材质,但我也尝试了默认选项(Blinn)并且它不起作用。 我记录了材料的内容,似乎与文件中的数据相关联。