我有一个简单的带有PBR材料的立方体。使用的贴图是颜色、金属度、粗糙度、凹凸。当我通过此代码导出场景时,导出的 glb 缺少除颜色之外的所有地图。这是ThreeJS中的一个错误吗?
e = new THREE.GLTFExporter();
e.parse(STAGE.scene.mesh, (glb) => {
let blob = new Blob([glb], { type: "application/octet-stream" });
let d = document.createElement('a');
d.href = window.URL.createObjectURL(blob);
d.download = "orbis.glb"
document.body.appendChild(d);
d.click();
document.body.removeChild(d);
}, {binary: true});
你应该使用不同的纹理。其原因是 gltf 规范:
- gltf 使用法线映射而不是凹凸图,因此不导出凹凸图 金属贴图
- 和粗糙度贴图仅在纹理相同时才导出,因为 gltf 对两者使用单个纹理(请参阅 https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#metallic-roughness-material 和 https://github.com/mrdoob/three.js/issues/14940,以获取在导出器中合并这些纹理的特征请求(