2

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

4

0 回答 0