尝试通过模型实现自动导航或在 viewer3d 中对模型进行演练
Posted
技术标签:
【中文标题】尝试通过模型实现自动导航或在 viewer3d 中对模型进行演练【英文标题】:Trying to achieve auto navigation through the model or a walkthrough over the model in viewer3d 【发布时间】:2021-01-05 15:19:34 【问题描述】:我正在尝试实现与Video 相同的目标。 需要一个实现遍历,浏览渲染文件中的所有模型。 有人可以告诉我它是如何完成的,或者它在 Autodesk 语言中叫什么,以便我可以找到 在 Autodesk 文档中列出并尝试实现它。
我在某处读到它,它说在创建 RVT 文件时需要实现它,然后需要渲染它是真的吗?
对示例或文档的引用会很有帮助。
【问题讨论】:
【参考方案1】:它在 Autodesk Forge 中称为 getState
和 restoreState
。getState
为您提供有关当前视口的信息。
首先,通过var currentState = viewer.getState(viewport: true)
获取状态并将currentState
保存在某处,然后通过viewer.restoreState(currentState)
调用它以获取已保存的视口。
【讨论】:
感谢这真的帮助我能够完成上述转换。【参考方案2】:是的,这可以通过以下几种方式完成:
正如 Paxton 所说,您可以使用 getState/restoreState 功能; “状态”包括诸如相机位置、选定对象的 ID、隐藏对象的 ID、剖面等信息,但可以过滤掉这些信息。 或者,您可以手动存储相机信息(例如,使用viewer.navigation.getPosition()
、viewer.navigation.getTarget()
和viewer.navigation.getCameraUpVector()
),然后使用setView 或使用(未记录的)方法转换到此相机设置viewer.navigation.setRequestTransition(true, newCameraPos, newCameraTarget)
。
【讨论】:
我能够获得状态,但在恢复时我无法找到显示平滑过渡的方法,您能否请我参考一些我可以实现的代码?我也找不到任何关于 setRequestTransition 的参考资料,如果你也有一些参考资料,请告诉我restoreState
方法的第三个参数是immediate
标志。如果将其设置为 false,则新的相机状态应该会平滑过渡到,例如,viewer.restoreState(state, null, false);
。
关于setRequestTransition
方法,我不知道为什么它没有包含在文档中。我会将问题报告给文档团队。以上是关于尝试通过模型实现自动导航或在 viewer3d 中对模型进行演练的主要内容,如果未能解决你的问题,请参考以下文章
通过引用传递 UIViewController 或在另一个处理程序类中获得自我控制