KhronosGroup glTF 2.0规范要求为位置数组指定accessor.max和accessor.min边界。然而,这些值必须表示为文本字符串,而顶点位置坐标则存储为base64 64编码字符串中的单精度浮动。
我遇到的问题是,联机Khronos glTF验证器和Microsoft扩展(大概是Khronos验证器的一个端口)将这些值与小数点15位(即双精度)进行比较,如果它们不完全匹配,则报告错误。这使得调试大型glTF文件非常困难,因为它会导致数以万计的错误。
更重要的是,我想知道这些错误是否重要。我可以修改我的glTF文件生成器,这样就可以将顶点位置坐标表示为文本字符串,而不会出错,但这似乎是一个荒谬的解决方案。我是不是漏掉了什么?
发布于 2018-06-29 20:42:36
VSCode扩展使用 --通过npm包--实际的Khronos glTF Validator,而不是端口。验证器是用Dart编写的,转到JavaScript,而VSCode本身基于电子和TypeScript,可以并且确实运行JavaScript作为扩展的一部分。
验证器的作者在这个问题中讨论了mix/max的精度:
https://github.com/KhronosGroup/glTF-Validator/issues/79
验证器期望JSON中存储的数字与缓冲区中存储的数字相匹配,当它们被处理为相同的精度时(IEEE对浮点数的单精度)。
然后,他给出了一个Ruby语言的例子,OP就是这样问的。
如果那里的解释与你看到的不匹配,请与验证器一起提出一个新的问题。谢谢!
https://stackoverflow.com/questions/51094770
复制相似问题