问题标签 [realitykit]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
1475 浏览

augmented-reality - AR 快速查看“无法打开对象”

当我单击我网站上的 AR 快速查看图标时,它没有显示 3d 模型,并且我收到消息“无法打开对象”。USDZ 目前托管在 google 存储桶中。问题可能出在我托管 USDZ 的方式上吗?如果是这样,是否有推荐的地方供我托管 USDZ 文件?

0 投票
1 回答
194 浏览

xcode - RealityKit 和 Reality Composer 与 iOS 12 支持不兼容

在我的应用程序的新更新中,我想使用 Reality Composer 集成新的 AR 功能,此功能仅适用于 iOS 13,但我有一个问题。我想保持我的项目与 iOS 12 兼容,但我无法做到这一点。当我设置与 iOS 12 的兼容性时,.rcproject 自动生成的 swift 文件给了我很多错误“......仅在 iOS 13.0 或更高版本中可用”。我尝试添加“@available(iOS 13.0, *)”,但是当我重建项目时,xCode 会恢复原始文件并返回相同的错误“...仅在 iOS 13.0 或更高版本中可用”。

这些有解决办法吗?

3

提前致谢

0 投票
1 回答
279 浏览

swift - ARKit 3.0 – 带有动作捕捉的人物遮挡

我正在尝试同时加载people occlusion和加载motion capture同一个应用程序。

由于ARBodyTrackingConfiguration不支持personSegmentationWithDepth,我正在创建 2 个 ARView,为每个提供不同的配置(ARWorldTrackingConfigurationARBodyTrackingConfiguration)。

问题是由于某种原因,只有一个委托回调被触发,并且没有可用的深度数据。

我在这里做错了什么?

不能同时拥有多个 ARSession 吗?

0 投票
2 回答
1063 浏览

rendering - RealityKit 如何在运行时创建自定义网格?

RealityKit 具有许多有用的功能,例如通过网络内置多用户同步以支持共享世界,但我似乎找不到太多关于在运行时创建网格/对象的文档。RealityKit 具有一些基本的网格生成功能(盒子、球体等),但我想在运行时创建自己的程序网格(顶点和索引),并可能在每一帧立即模式渲染样式中重新生成它们。

首先,有没有办法做到这一点,或者 RealityKit 是否过于封闭而无法进行大量自定义渲染?其次,是否有替代解决方案可以让我使用一些 RealityKit 的同步?例如,这部分真的只是我可以与 ARKit 3 一起使用的另一个库吗?这叫什么?我也希望能够在用户设备之间同步任意数据,因此内置系统也会有所帮助。

我无法真正对此进行测试,因为目前我没有任何可以支持测试版软件的设备。我正在尝试了解如果我确实获得了必要的硬件,我是否能够为我的程序做我想做的事情,但文档很少。

0 投票
0 回答
223 浏览

swift - 如何阻止为 iOS 12 目标自动生成 Reality Composer Swift 文件?

我正在编写一个具有 RealityKit 功能的应用程序。我也想让它支持 iOS 12。这意味着 iOS 12 或更低版本将能够使用非 RealityKit 功能,而 iOS 13 将能够使用所有这些功能。

但是,在设置所有@availableandif #available之后,构建失败。原因是 Xcode 项目中包含的 RCProject 自动生成的 Swift 文件应该仅适用于 iOS 13。

仅当 iOS 13 可用时,如何才能编译 RCProject 文件?

我已经为 RealityKit 方法设置了所有@availableif #available,以确保 RealityKit 代码只会在 iOS 13 设备上执行。

  • Xcode 自己为 Reality Composer 项目自动生成的 Swift 文件

图片

我希望该应用程序能够成功地为 iOS 12 或更低版本的设备构建,但构建操作失败,因为无法编译 Experience.swift(由 Xcode 自身构建并存储在派生数据中的 RCProject 自动生成的内容)。

0 投票
2 回答
1277 浏览

ios - 为什么 ARFaceAnchor 的 Z 位置为负?

我正在使用 ARKitARFaceTrackingConfiguration对齐ARConfiguration.WorldAlignment.camera,但我发现文档(似乎)并没有反映现实;

根据下面的文档摘录,我希望面部锚点transform以右手坐标系表示。但是,当我尝试移动头部时,我注意到面部锚点的 Z 坐标始终为负(即faceAnchor.transform.columns.3.z < 0)。请注意,在 X 和 Y 方向上移动头部对应于预期结果(与 Z 坐标不同)。

相机对齐根据设备相机的本机传感器方向定义坐标系。相对于一个AVCaptureVideoOrientation.landscapeRight方向的相机图像,x 轴指向右侧,y 轴指向上方,z 轴指向设备的前部(朝向用户)

我希望transform按照文档行事,即面部锚的 Z 坐标应该是正的,因为文档说“ z 轴指向设备的前面(朝向用户) ”。到目前为止,Z 轴似乎指向设备的背面……

我错过了一些明显的东西吗?

我尝试通过以下代码修复旋转,但我不确定它是否是解决此问题的正确方法:

0 投票
1 回答
3097 浏览

swift - ARAnchor 和 AnchorEntity 有什么区别?

我目前正在用 RealityKit 做一些实验。

我一直在查看一些示例代码,我对 和 之间的区别以及何时使用其中一个而不是另一个感到有些ARAnchor困惑AnchorEntity

到目前为止,我知道:

  • 两者都是描述现实世界中位置的锚点。
  • AnchorEntity也可以有其他Entity的作为孩子,所以你可以直接将模型对象添加到锚点。您不能使用 来执行此操作ARAnchor,您必须“手动”将模型对象添加到rootNode,并使用锚点的位置正确放置它。
  • 在文档中它说 ARKit 使用添加ARAnchor来优化锚点周围区域的跟踪。的文档AnchorEntity没有指定这一点。

现在我将 aAnchorEntity作为“根节点”添加到会话中,因为它更易于使用,因此我可以简单地将模型作为子节点直接添加到此锚点。但随后我还在ARAnchor场景的锚点中添加了一个位于同一位置的 ,以增强围绕该点的跟踪。这是必要的吗?

问:任何人都可以帮助我澄清这两者的区别和用例吗?

0 投票
2 回答
417 浏览

swift - SwiftUI:如何使用非模拟器支持的框架和 PreviewProvider?

我正在开发一个 RealityKit 应用程序,并使用 SwiftUI。

PreviewProvider当然,RealityKit 视图在 SwiftUI预览中不起作用。但我的问题是,即使是简单且完全隔离的 SwiftUI 视图也无法预览,因为PreviewProvider需要编译整个项目。

我的 SwiftUI View 类没有以任何方式连接到 ARView 代码。如果我只是去“文件”->“新建”并选择一个 SwiftUI 文件,然后尝试在画布中预览它(⌥ + ⌘ + ↵)就足够了,没有任何更改。然后它会给我那个错误。只是我的代码中有任何不受画布预览支持的代码的事实,就会.xcodeproj产生错误。

我收到这样的错误:

我现在唯一的两个解决方案是 1)将文件复制到 Playground 并在那里进行试验,然后在完成后复制回来。2) 在处理视图之前注释掉所有不受支持的 RealityKit 相关代码。

问:当然,这些解决方案都不是最优的。有没有更好的解决方案?

0 投票
1 回答
2300 浏览

swift - RealityKit 和 ARKit 的挑战

我想在 ARKit 中构建一个演示应用程序,但我对 beta 版目前可能实现的功能有一些疑问(Apple 一直将此称为 RealityKit 或 ARKit 3.0)。


我正在尝试构建的演示应用程序应该执行以下操作:

  1. 识别真实环境中的对象或图像,并在那里创建锚点

  2. 渲染附加到锚点的虚拟模型

  3. 让虚拟模型呈现遮挡

  4. 让虚拟模型与锚图像/对象一起移动


我尝试从早期版本(利用 SceneKit 的 ARKit 2.0)中调整一些代码,但某些功能(如人物遮挡)不是 ARKit 2.0 的一部分。

由于 Apple 一直在迭代其测试版,因此在其网站和 WWDC 2019 上宣传的许多功能似乎已从 RealityKit 的文档中消失(人物遮挡、身体跟踪、世界跟踪)。

根据我的理解,ARKit 2.0 可以实现项目 (1) 和 (2)。第 (3) 项在测试版中尽可能宣传,但我几乎看不到任何文档。

这可以在最新的测试版中做到吗?如果是这样,最好的方法是什么?如果没有,是否有任何解决方法,例如混合新旧 API 之类的?

0 投票
2 回答
730 浏览

swift - RealityKit 和 Reality Composer – 图像识别

我正在开发一个可以识别图像的应用程序,然后在该图像之上放置一个 AR 节点(使用 Reality Composer 构建的 3D 模型)。我想用RealityKit/构建它Reality Composer(它也应该支持图像识别),但这不起作用。

我已经测试过模型是否可以在简单的水平面上工作,并且确实可以(在 Xcode 和 Reality Composer 测试环境中)。但是当我选择一个图像作为锚定模式时,该模型不会出现在 Xcode 项目中,但它会出现在 Reality Composer 测试环境中。

我目前使用此代码将 Reality Composer 项目加载到 Xcode 中:

预期的输出将是 - 当指向正确的图像时 - 模型出现。