【问题标题】:Do Forge Viewer SVF pack files use parent-child linked transforms?Forge Viewer SVF 包文件是否使用父子链接转换?
【发布时间】:2019-10-26 19:49:02
【问题描述】:

上下文:我一直在使用 Petr 的 Forge Extract 代码将 Forge SVF 结构中的几何数据提取为 OBJ 格式。然后这些数据被透明地发送到我正在处理的项目的不同渲染系统。但是,我注意到提取的对象组中存在不正确的旋转。不是所有的对象,只是分组。

例如,这里是一组对象(长杆)的 Forge Viewer 渲染,旋转正确。您可以看到所有杆沿底板边缘均匀放置,并且彼此相对放置。

而在渲染提取的几何图形中,对象分组正确地相对于彼此放置(同样,3x3),但作为一个整体,该组相对于底板沿 Z 轴略微旋转。

如果各个极点都是某个父对象(可能是不可见的分组对象)的所有子对象,并且父对象的旋转将使 SVF 中的所有极点旋转,那么这就是我所期望的行为类型,但旋转不是'在几何提取期间不应用。 与场景中的单个对象有关的所有分组都会发生这种情况。

在查看this question 时,我有一个强烈的印象,即有第二个旋转方面,但在直接阅读 SVF 时我看不出它是如何应用的。


问题: 显然我不是在寻找直接的代码解决方案,而是要确认 SVF 包文件的结构。看着the extraction,我没有看到任何暗示父子分组但没有设法想到替代原因的东西。

那么,在 SVF 包文件中是否存在这样的父子变换关系,或者仅适用于某些对象的全局旋转组件?如果是这样,放在包文件中的什么位置。如果不是,还有什么可能导致这种类型的组系统轮换?

【问题讨论】:

    标签: autodesk-forge autodesk-model-derivative


    【解决方案1】:

    SVF 文件格式不使用父子变换 - 所有片段变换基本上都是世界变换。我的parsing the fragment transforms 代码可能错误地处理了其中一种转换类型。我会尝试调试getTransform 方法,用于基极或极点之一的 dbId,并将转换与 Forge Viewer 解析的转换进行比较。

    另外,我想知道稍微偏离的是底座,而不是 3x3 杆?

    【讨论】:

    • 是的,我正在考虑与单个对象相同的事情。然而,它们似乎被正确放置,无论如何都在 0.001 单位内。例如,基本坐标列出了 Forge 的 XYZ:4396.771484375、-37926.38671875、-14149 OBJ:4396.771711947、-37926.385416875、-14149 我也得到了类似的帖子阵容。所以我在想也许中心支点并不总是正确的?或者 getTransform 中的错误我将重构我的代码,以便我可以调试它并发布见解(如果有的话)。
    猜你喜欢
    • 2018-11-07
    • 2021-02-05
    • 2018-12-11
    • 2019-04-13
    • 2021-01-01
    • 2021-11-06
    • 2020-09-30
    • 2023-02-24
    • 1970-01-01
    相关资源
    最近更新 更多