Javascript three.js-如果交付时没有*.mtl文件,如何将自定义颜色设置为*.obj model?

Javascript three.js-如果交付时没有*.mtl文件,如何将自定义颜色设置为*.obj model?,javascript,three.js,3d,.obj,mtl-file,Javascript,Three.js,3d,.obj,Mtl File,我有一组没有材质文件(*.mtl文件)的*.obj格式的模型。一些在线服务正确显示这些模型:。但是-根据three.js文档-在我的项目中,我只得到了模型的错误显示: 而不是: 开发人员表示,这项服务的想法是,如果找不到*.mtl文件,那么脚本将设置默认颜色/材质-用一种颜色绘制整个产品 如何使用three.js工具将对象从*.obj文件着色为选定颜色 为了进行测试,我附加了一个没有材质文件的模型文件:。似乎OBJ没有正确导出。使用macOS preview、BabylonJS或three.

我有一组没有材质文件(*.mtl文件)的*.obj格式的模型。一些在线服务正确显示这些模型:。但是-根据three.js文档-在我的项目中,我只得到了模型的错误显示:

而不是:

开发人员表示,这项服务的想法是,如果找不到*.mtl文件,那么脚本将设置默认颜色/材质-用一种颜色绘制整个产品

如何使用three.js工具将对象从*.obj文件着色为选定颜色


为了进行测试,我附加了一个没有材质文件的模型文件:。

似乎OBJ没有正确导出。使用macOS preview、BabylonJS或three.js的
OBJLoader
时,面似乎具有错误的缠绕顺序。您应该通过在
onLoad()回调中执行以下操作来获得所需的结果:

const material=new THREE.MeshPhongMaterial({color:0xff0000,side:THREE.BackSide});
对象遍历(功能(子项){
如果(child.isMesh)child.material=material;
} );

是的,这就是问题得以解决的原因。这个模型现在看起来很自然。