我正在使用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),但它不起作用。我记录了材料的内容,并且似乎用文件中的数据正确填充。