官方验证器,就在您的浏览器里
这不是一份重新实现。它运行的是 Khronos glTF-Validator —— 官方在线验证器以及多款DCC软件内置导出检查所使用的同一引擎 —— 编译为JavaScript,并在您本地的电脑上执行。
当需要由您来告诉供应商“你们的导出有问题”时,这个区别就很关键。“Khronos官方验证器在 /meshes/3/primitives/0/indices 报出 ACCESSOR_INDEX_OOB”是一句能迅速结束争论的话;“某个网站说看起来不对”则不是。
如何理解各级严重程度
验证器分四个级别报告问题,它们的严重性并不相同。
错误 表示文件违反了glTF 2.0规范。宽松的查看器也许仍能打开它——three.js尤其宽容——但您无法保证任何其他实现也能。这些必须修。
警告 标记的是合法但几乎肯定并非本意的情况:accessor声明的min/max与实际数据不符、纹理没有图像、节点带单位变换且没有子节点。
信息 和 提示 只是建议性的。UNUSED_OBJECT 和 NODE_EMPTY 在大量完全正常的生产资源中都会出现——不过是导出器留下了一个辅助节点而已。一个带九条提示的干净文件,依然是干净文件。
校验带外部文件的 .gltf
.gltf 是一个JSON文档,它指向独立的 .bin 缓冲区和图像文件。如果只校验JSON本身,那些引用会全部报告为缺失资源,报告也就毫无价值。
请在第二个选择框中加入配套文件,引用便能正确解析。仍然缺失的内容会被明确列出——这本身就是一项真实的发现,因为交付一个没有 .bin 的 .gltf,本来就是残缺的交付。
常见问题及其含义
ACCESSOR_INDEX_OOB—— 索引缓冲区引用了不存在的顶点。几乎总是导出器有缺陷或文件被截断。ACCESSOR_MIN_MISMATCH/ACCESSOR_MAX_MISMATCH—— 声明的边界与实际数据不符。会破坏视锥剔除,也会坑到任何信任文件头的使用方。MESH_PRIMITIVE_NO_POSITION—— 图元没有顶点位置,任何渲染器都画不出来。UNSUPPORTED_EXTENSION—— 文件使用了验证器不认识的扩展。未必是错误,但值得对照目标引擎确认。MESH_PRIMITIVE_TANGENT_WITHOUT_NORMAL—— 有切线却没有法线,这没有意义。UNUSED_OBJECT—— 定义了却从未被引用。无害,但属于文件中的冗余负担。
资源摘要
除了问题列表,验证器还会给出与性能直接相关的数字:绘制调用数、顶点与三角面总数、最大UV集数量,以及每个顶点的最大骨骼影响数。最后一项尤其值得留意——许多移动端管线最多支持四个影响,而按八个制作的模型不会明确报错,只会变形出错。
隐私
验证器以JavaScript的形式在您的浏览器中运行。任何文件、缓冲区或贴图都不会被上传,因此用于客户项目和未发布资源同样安全。
Tiny Online Tools







