在使用Blender内置的Draco压缩导出到glTF之后,所有扩展属性在资产中的第一个原语之后都被错误地对齐。
第一个是好的,但第二个是错对齐的,这会导致错误。
"extensions" : {
"KHR_draco_mesh_compression" : {
"bufferView" : 0,
"attributes" : {
"POSITION" : 0,
"NORMAL" : 1,
"TEXCOORD_0" : 2,
"TEXCOORD_1" : 3
}
}
},
"indices" : 4,
"material" : 0,
"mode" : 4
},
{
"attributes" : {
"POSITION" : 5,
"NORMAL" : 6,
"TEXCOORD_0" : 7,
"TEXCOORD_1" : 8
},
"extensions" : {
"KHR_draco_mesh_compression" : {
"bufferView" : 4,
"attributes" : {
"POSITION" : 0,
"NORMAL" : 1,
"TEXCOORD_0" : 7,
"TEXCOORD_1" : 8
}
}
},
"indices" : 9,
"material" : 1,
"mode" : 4
},
{
"attributes" : {
"POSITION" : 10,
"NORMAL" : 11,
"TEXCOORD_0" : 12,
"TEXCOORD_1" : 13
},
"extensions" : {
"KHR_draco_mesh_compression" : {
"bufferView" : 5,
"attributes" : {
"POSITION" : 0,
"NORMAL" : 1,
"TEXCOORD_0" : 12,
"TEXCOORD_1" : 13
}
}
},我了解到,一种解决方案可能是更改第二个原语和进一步原语的extensions中的属性,以便它们遵循增量顺序。然而,当处理大量的对象时,这个手动过程可能会导致一些问题,因为它需要大量的手工工作,这可能会导致错误和结果错误。
我的问题是,最新版本的Draco和Three.js修复了这些bug吗?我们的应用程序目前正在上运行?
发布于 2020-06-04 20:54:35
解决方案第1部分:是的,您应该手动更新extensions._compression.attributes,以便它们遵循数字顺序,至少是直到修复了这个错误报告。
但是,我几乎可以肯定,您仍然遇到此问题的原因是因为您使用的是Three.js r107。我这么说是因为GLTF支持KHR_Mesh_Quantization 添加到r111上,这是Blender的DRACO压缩使用的。此外,在r107和r117之间,DRACO和GLTF都有很大的改进。你可以请参阅“变更日志”中的此内容。
更新到最新版本时,不要忘记更新dracoLoader.setDecoderPath() 如文档中所述的文件。
https://stackoverflow.com/questions/62203564
复制相似问题