ThreeJS GLTFExporter 不导出 PBR material 贴图
ThreeJS GLTFExporter doesn't export PBR material maps
我有一个带有 PBR 的简单立方体 Material。使用的贴图是颜色、金属度、粗糙度、凹凸。当我通过此代码导出场景时,导出的 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 使用 normalMap 而不是 bumpMap,因此不导出 bumpMaps
- metalnessMap 和 roughnessMap 仅在它们是相同纹理时才导出,因为 gltf 对两者使用单个纹理(请参阅 https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#metallic-roughness-material and https://github.com/mrdoob/three.js/issues/14940 以了解在导出器中合并这些纹理的功能请求)
我有一个带有 PBR 的简单立方体 Material。使用的贴图是颜色、金属度、粗糙度、凹凸。当我通过此代码导出场景时,导出的 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 使用 normalMap 而不是 bumpMap,因此不导出 bumpMaps
- metalnessMap 和 roughnessMap 仅在它们是相同纹理时才导出,因为 gltf 对两者使用单个纹理(请参阅 https://github.com/KhronosGroup/glTF/tree/master/specification/2.0#metallic-roughness-material and https://github.com/mrdoob/three.js/issues/14940 以了解在导出器中合并这些纹理的功能请求)