如何使用pythonOCC从 GLB文件中读取自定义数据(包括extras与用户数据)
我正在使用pythonOCC将一个3D模型导出为GLB格式。在导出过程中,我在每个面上使用 TDataStd_NamedData 存储自定义元数据:
...
user_data = TDataStd_NamedData.Set(some_shape_label)
user_data.SetString("some_variable", str(value))
....
这会在每个GLB节点上正确地保存为 extras。
现在,当我尝试使用 RWGltf_CafReader 和 TDataStd_NamedData 来读取它时,这个属性始终找不到。
.....
shape = shape_tool.GetShape(label)
named_data = TDataStd_NamedData()
if label.FindAttribute(TDataStd_NamedData.GetID(), named_data):
if named_data.HasStrings():
print("Yes") # does not print
问题:
RWGltf_CafReader实际上会导入extras吗?- 如果没有,使用pythonOCC读取GLB
extras/ 用户数据的正确方法是什么?是否可以与形状同时读取?
解决方案
RWGltf_CafReader 不会导入glTF extras,因此加载后 TDataStd_NamedData 将为空。
要访问自定义元数据,可以单独解析GLB(例如,使用 pygltflib),然后将其手动映射到导入的形状。
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。