以gltf 2.0 格式保存的3D 模型是否支持任意用户数据?

can 3D model saved in gltf 2.0 format support arbitrary user data?

我正在管理 3D 资产库的创建,预计每次传递 5,000 个模型,每个传递来自多个模型创建供应商。进行中的作品均为FBX格式,最终交付为二进制gltf(glb)格式。

我一直在阅读 gltf/glb 格式,但我没有看到任何可以放置“用户数据”的字段。我想在每个 glb 模型中放置一个字符串来标识模型,以便可以验证模型在存储文件系统中的位置和信息在数据库中的位置。

到目前为止,我看到了我们需要的 3D 资产的所有 gltf 格式,但是是否有任何字段用于 用户字符串信息?我可以很容易地想象,在最终库中的数万个模型中,有些被人类不小心放在了错误的目录中,and/or 胖手指在输入模型数据库信息时输入错误,and/or 胖手指仅输入文件名就会出错。

我想要一个用于标识字符串的用户数据字段,这样文件系统中的模型存储处理和数据库中的信息放置可以使用运行该用户数据字段的软件自动进行。同样,用户数据字段可用于验证接收到的模型是否是开发时请求的模型,并且可在遍历存储目录层次结构的每个文件时使用,以使用文件名以外的其他内容验证该层次结构中每个文件的存在.

glTF 或 GLB 文件中的每个对象都有一个 .extras 属性 可以存储任意 JSON 内容。例如,scene.extras or asset.extras 可能是您描述的数据的自然位置。

3D 库和游戏引擎随后应读取该数据并将其提供给用户应用程序。例如,3D 库 https://threejs.org/ puts the .extras fields from the glTF file into its Object3D.userData 值。