OBJ + MTL 加载但不渲染
OBJ + MTL loads but doesn't render
如果我使用下面的代码加载从
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。所以这似乎是一个 material 问题。
我有一个带有完整代码的 codepen https://codepen.io/steveg3003/pen/6f0d8c4a17ed12bea49b3391a6d80ce3?editors=0010
谢谢
所以我的解决方案是手动将 material 文件 (.mtl) 中的 'd' 值从 0.00000 更改为 1.00000
类似的事情发生在我身上,除了模特是全黑的。我必须打开 .mtl 文件并将 "Kd 0.00 0.00 0.00" 更改为 "Kd 1.00 1.00 1.00"
如果我使用下面的代码加载从 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。所以这似乎是一个 material 问题。
我有一个带有完整代码的 codepen https://codepen.io/steveg3003/pen/6f0d8c4a17ed12bea49b3391a6d80ce3?editors=0010
谢谢
所以我的解决方案是手动将 material 文件 (.mtl) 中的 'd' 值从 0.00000 更改为 1.00000
类似的事情发生在我身上,除了模特是全黑的。我必须打开 .mtl 文件并将 "Kd 0.00 0.00 0.00" 更改为 "Kd 1.00 1.00 1.00"