如何为从 .dae 文件导入的对象生成 ID,在下一次加载时将是相同的?
Posted
技术标签:
【中文标题】如何为从 .dae 文件导入的对象生成 ID,在下一次加载时将是相同的?【英文标题】:How do I generate IDs for objects imported from a .dae-file that will be the same the next load? 【发布时间】:2017-12-05 23:22:42 【问题描述】:我正在围绕 THREE.js 构建一个 CMS,我需要通过一些在下次加载文件时不会更改的属性来跟踪对象。我正在使用从 Sketchup 格式 .skp 导出的 DAE 文件。似乎在每次加载时都会生成属性“id”和“uuid”。有时“名称”属性的格式为“group_41”或“instance_58”,但它通常是空的,这使得它不可靠。
如果有人有其他解决方案,我不会锁定使用 .DAE,但它非常受欢迎,因为从 Sketchup 导出比通过 Blender 创建 JSON 格式更容易(根据我的经验,这也需要很多调整和设置以正常工作)。
有没有人有这方面的经验,或者在 Sketchup 或其他第三方插件/软件中创建持久 ID 的解决方法?
【问题讨论】:
【参考方案1】:看起来我找到了一个简单的解决方案:将面/“边”组合在一起,这样它们就得到了“group_nn”-name 格式。从那里您可以选择要使用的该组的子网格。请注意,各个面孔没有任何名称,但我们仍然可以通过它们的父级找到它们。要在 SketchUp 中分组,这对我有用:
【讨论】:
【参考方案2】:在 SketchUp 2017 中,Entities
有一个 persistent_id
,它不会在会话之间的 SketchUp 模型中发生变化。
您可以编写一个 SketchUp Ruby 脚本将所有组重命名为它们的 persistent_id,然后您可以从 SketchUp 模型跟踪实体到导出文件。
http://ruby.sketchup.com/Sketchup/Entity.html#persistent_id-instance_method
【讨论】:
谢谢,我去看看!以上是关于如何为从 .dae 文件导入的对象生成 ID,在下一次加载时将是相同的?的主要内容,如果未能解决你的问题,请参考以下文章
如何为open id connect生成一个众所周知的配置文件?