上下文:我一直在使用Petr的Forge Extract代码将Forge SVF结构中的几何数据提取为 OBJ 格式。然后将这些数据透明地发送到我正在处理的项目的其他渲染系统。但是,我注意到提取的对象组中的旋转不正确。并非所有对象,仅是分组。
作为示例,这是在正确旋转的情况下用一组对象(长杆)进行的Forge Viewer渲染。您会看到所有极点均沿基板边缘均匀放置,并且彼此之间均等放置。
在渲染的提取几何中,对象的分组相对于彼此正确放置(相等于3x3),但是整个对象组相对于底板沿Z轴略微旋转。 / p>
如果单个极点都是某个父对象(可能是不可见的分组对象)的所有子对象,并且父级的旋转将使SVF中的所有极点都旋转,但这种旋转不是在几何图形提取期间未应用。 对于场景中的单个对象,所有分组都会发生这种情况。
在查看this question时,我有很强的印象,即存在第二个旋转方面,但是当直接阅读SVF时我看不到它如何应用。
问题: 显然,我不是要寻找直接的代码解决方案,而是要确认SVF包文件的结构。看着the extraction,我看不到任何暗示父子组合但没有设法考虑其他原因的东西。
那么,SVF包文件中是否存在此类父子转换关系,或者仅适用于某些对象的全局旋转组件?如果是这样,则将其放在打包文件中的什么位置。如果没有,还有什么可能导致这种类型的群体系统轮换?
答案 0 :(得分:0)
SVF文件格式不使用父子转换-所有片段转换基本上都是世界转换。我的parsing the fragment transforms代码有可能错误地处理了其中一种转换类型。我会尝试调试getTransform
方法的基本或两极之一的dbId,然后将转换与Forge Viewer解析的转换进行比较。
另外,我想知道是不是稍微偏离了基地,而不是3x3杆?