【问题标题】:Adding custom attributes to a 3D model?向 3D 模型添加自定义属性?
【发布时间】:2020-11-23 10:26:27
【问题描述】:

问题陈述

我想向 3D 模型添加其他数据,但不会损坏文件,导致无法在普通 3D 对象查看器中查看模型。

我想要的输出是单个文件。这将允许定制软件包按需提取附加数据,而不会阻止用户在现成的查看器中检查模型(不需要显示附加数据)。

我研究了这个主题并努力寻找能够存储额外数据的 3D 文件类型......有什么想法吗?

“附加数据”示例

我想为模型中的每个元素分配两个整数和一个字符串:

  • 低温(0-10000)
  • 上限温度 (0-10000)
  • 众所周知的名称(字符串,最多 16 个字符)

我还想为整个模型分配两个字符串(即文件):

  • 模型标识符(字符串,最多 16 个字符)
  • 职位参考(字符串,最多 16 个字符)

数据应该存在于文件本身中,因此不能轻易删除。

想法

  • 我曾考虑将其他数据分开(快速修复),但 由于模型数量众多,这可能会导致 不匹配的文件。因此,重点是向文件中添加数据,以及 不仅仅是对齐外部数据文件。

  • 我已经证明我可以操作一个 .stl 文件来满足我的需要......但是 这将偏离标准,从而损坏文件 在普通观众中使用。

  • “元素”数据可能在许多元素中重复,因此使用查找表 在文件中将减少需要存储在每个元素中的数据量...... 但是我们需要为查找表找到一个位置,并且仍然为每个元素分配一个 ID。

  • 必须有一个标准允许 3D 对象的自定义元数据?

【问题讨论】:

  • 如果您确定没有其他软件应该读取此 3d 模型文件,最好编写自己的序列化器/反序列化器。您也可以在blender或其他软件中编写导出器插件来转换文件。
  • @codetiger - 我想要相反的结果。一种众所周知的文件格式,可以在普通 3D 查看器中打开,但能够存储其他数据,我可以在自己的反序列化器中利用这些数据。
  • Collada 文件是一个简单的基于 XML 的文件,包含您所要求的一切。
  • 感谢@codetiger...为什么不通过一些参考链接来回答这个问题,以便将来帮助其他人?

标签: 3d 3d-model


【解决方案1】:

这正是 Collada 文件格式所针对的用例。

COLLADA(协作设计活动)是一种交换文件格式 用于交互式 3D 应用程序。 COLLADA 定义了一个开放的标准 XML 各种图形软件之间交换数字资产的模式 应用程序。 COLLADA 使用 .dae(数字资产交换)作为文件名 扩展名。

OpenCollada 是一个开源 SDK,可用于读取和写入模型文件。该设计允许我们按照您的期望添加自定义元数据。 https://github.com/KhronosGroup/OpenCOLLADA

【讨论】:

    猜你喜欢
    • 2015-12-01
    • 2011-02-18
    • 1970-01-01
    • 2013-06-18
    • 1970-01-01
    • 2015-09-23
    • 2015-03-09
    • 2018-08-06
    • 1970-01-01
    相关资源
    最近更新 更多