eiv*_*dml 9 augmented-reality swift arkit realitykit
我目前正在用 RealityKit 做一些实验。
我一直在看一些示例代码,我有点困惑之间的差异ARAnchor和AnchorEntity,当使用一个比其他。
到目前为止,我知道:
AnchorEntity也可以将 otherEntity作为子项,因此您可以将模型对象直接添加到锚点。你不能用 来做到这一点ARAnchor,你必须“手动”将模型对象添加到rootNode,并使用锚的位置正确放置它。ARAnchor来优化锚点周围区域的跟踪。的文档AnchorEntity没有指定这一点。现在我将一个AnchorEntity作为“根节点”添加到会话中,因为它使用起来更简单,所以我可以简单地将模型作为子项直接添加到这个锚点。但随后我还在ARAnchor场景的锚点中添加了一个位于相同位置的 ,以增强围绕该点的跟踪。这是必要的吗?
ARG*_*Geo 15
更新时间:2021 年 4 月 3 日。
ARAnchorclass 和AnchorEntityclass 都是为相同的神圣目的而制作的——将 3D 内容绑定到您的现实世界对象。
RealityKitAnchorEntity极大地扩展了 ARKit 的功能ARAnchor。这两者之间最重要的区别是AnchorEntity自动跟踪现实世界的目标,但ARAnchor需要renderer(...)或session(...)实例方法来实现这一点。还要考虑到集合ARAnchors存储在 ARSession 中,而集合AnchorEntities存储在场景中。
以下是层次差异:
RealityKit 的主要优点是能够同时使用不同的 AnchorEntities,例如.plane、.image和.object。
如您所知,在 ARKit 中,您只能在当前会话中运行一个配置:World、Image 或 Object。然而,在 ARKit 中有一个例外——你可以同时运行两个配置——WorldTracking 和 FaceTracking(但第一个必须是driver,另一个必须是driven)。
苹果开发者文档说:
在 RealityKit 框架中,您使用一个
AnchorEntity实例作为实体层次结构的根,并将其添加到anchors collectionScene 实例中。这使 ARKit 能够将锚实体及其所有层次结构的后代放置到现实世界中。除了锚实体从Entity类继承的组件之外,锚实体还符合HasAnchoring协议,给它一个AnchoringComponent实例。
AnchorEntity 具有三个构建块:
world,body或image)所有实体都Synchronization component可以帮助组织协作会话。
AnchorEntity有九种特定的锚点类型,用于九种不同的目的:
您可以同时使用这两个类ARAnchor,并AnchorEntity在您的应用程序。或者你可以只使用AnchorEntityclass,因为它已经足够了。
有关其他信息
ARAnchor,并AnchorEntity请看看这篇文章。
| 归档时间: |
|
| 查看次数: |
2511 次 |
| 最近记录: |