如果我使用以下代码加载从下载的.obj和.mtl https://poly.google.com/view/9NXf-SDxJny它工作正常,我看到星星在我的场景中渲染。
return new Promise((resolve, reject) =>
{
let mtlLoader = new THREE.MTLLoader();
mtlLoader.crossOrigin = true;
mtlLoader.setPath(ASSETS_PATH);
mtlLoader.load(filename + '.mtl', (materials) =>
{
materials.preload();
let objLoader = new THREE.OBJLoader();
objLoader.setPath(ASSETS_PATH);
objLoader.setMaterials(materials);
objLoader.load(filename + '.obj', (obj) =>
{
this.obj = obj;
resolve(true);
});
});
});
但是当我使用相同的代码从 https://poly.google.com/view/4-OZNPuTqFq 加载 obj 和 mtl 时它没有显示。我没有收到任何错误。如果我删除行 objLoader.setMaterials(materials); 那么我会看到蛋糕,但没有 Material 。所以这似乎是一个重大问题。
我有一个 codepen,其中包含完整代码 https://codepen.io/steveg3003/pen/6f0d8c4a17ed12bea49b3391a6d80ce3?editors=0010
谢谢
最佳答案
类似的事情也发生在我身上,只不过模型是全黑的。我必须打开 .mtl 文件并将“Kd 0.00 0.00 0.00”更改为“Kd 1.00 1.00 1.00”
关于three.js - OBJ + MTL 加载但不渲染,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47081452/