问题标签 [arkit]

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 投票
1 回答
3045 浏览

ios11 - 如何使用 AR 在 iOS 11 中创建可用作虚拟对象的 .scn 文件?

我下载了苹果提供的 ARKit 演示,我看到有 .scn 文件在应用程序中用作虚拟对象,我如何创建其他类似的虚拟对象文件?

0 投票
1 回答
686 浏览

swift - ARKit Swift - 致命错误:在展开可选值时意外发现 nil

一个非常简单的使用 ARKit 的 Swift 代码。主要是让Xcode创建一个ARKit App并运行。我工作得很好,展示了 de Plane。

但是,当向 Storyboard 添加导航控制器并创建一个小菜单时,使用 Plane Demo 的条目并现在调用相同的 ARKit 示例,应用程序崩溃。

崩溃是:

2017-06-27 08:08:26.317187-0500 ARDemo[1868:432582] [DYMTLInitPlatform] 平台初始化成功致命错误:在展开可选值时意外发现 nil 2017-06-27 08:08:29.546679-0500 ARDemo[1868 :432449] 致命错误:在展开可选值 (lldb) 时意外发现 nil

这意味着,当直接运行 ARKit 演示 ViewController 时,它可以工作,但是当从另一个视图控制器调用 ViewController 时,应用程序会崩溃。

另一方面,当不使用@IBOutlet 时,以编程方式创建 ARSCNView 并添加到视图中,应用程序运行良好。

在 Objective-C 中做同样的事情不会产生任何崩溃。奇怪的?

任何的想法?

0 投票
2 回答
1705 浏览

ios - ARKit 可以将特定表面检测为平面吗?

使用 iOS 11 和 iOS 12 以及 ARKit,我们目前能够检测水平表面上的平面,并且我们还可以在表面上可视化该平面。

我想知道我们是否可以通过某种图像文件声明我们想要检测平面的特定表面?(可能会忽略 ARKit 从其他表面检测到的所有其他平面)

如果这不可能,那么我们是否可以捕获检测到的平面(通过图像),然后我们可以通过CoreML识别该特定表面的模型对其进行处理?

0 投票
6 回答
10380 浏览

ios - 如何从 ARKit 录制视频?

现在我正在测试 ARKit/SceneKit 的实现。屏幕的基本渲染有点工作,所以我想尝试将我在屏幕上看到的内容录制成视频。

只是为了录制 Scene Kit,我发现了这个 Gist

但这不会渲染来自设备相机的图像。

所以我也开始寻找方法来做到这一点。到目前为止,我找到了通过访问 ARFrame 将捕获的图像作为 CVImageBufferRef 获取的方法。Apple 的 GLCameraRipple 示例似乎可以帮助我从中获取 OpenGL 纹理。

但我的问题是如何在渲染循环中绘制它。这对于有 OpenGL 经验的人来说可能很明显,但我对 OpenGL 的了解很少,所以我不知道如何将它添加到上面的代码中。

0 投票
2 回答
1826 浏览

xcode - 在 Xcode 9 beta 的场景编辑器中定位对象

我是 SceneKit 的新手,无法掌握 Xcode 场景编辑器。我正在对最近推出的 iOS ARKit 做一些研究。我使用 SceneKit 模板创建了一个示例项目。它带有一个默认的ship.scn

我删除了这个 ship.scn 并创建了一个新的 SCN,将一个示例.DAE模型拖放到这个 SCN 中。我能够清楚地查看我放置在 .SCN 文件中的所有纹理的对象。

但是当我在设备中运行它时,该对象出现在相机顶部并放大并且没有在相机框架中正确定位。我必须在 Xcode 场景编辑器中将对象的位置指定为x: 0, y: -60z: -60以使其在相机框架的中心可用。但如果我这样做,对象将始终-60与相机有一定的距离,我将无法使用触摸手势正确移动/调整它的大小。

任何人都请帮助我如何使对象在相机框架的中心可用,以便该对象还支持旋转/调整大小/移动等。

我创建了如下场景并将其添加到场景视图中:

我使用Apple 的链接作为移动/调整对象大小的参考。

0 投票
2 回答
2225 浏览

ios - 动画 3D 模型以错误的方式跟随 ARKit 场景的运动

我正在测试 ARKit 的实现,我的部分实验只是导入一个动画模型,让它像 Apple 示例项目中包含的其他静态模型一样跟随 AR 场景的运动。

我从 Apple 的 SceneKit 示例 https://developer.apple.com/library/content/samplecode/SceneKitAnimations/Introduction/Intro.html中抓取了一个动画 3D 模型 ,并将其放入简单的 ARKit 测试项目中。 https://viewar.com/apple-augmented-reality-arkit-for-ios/

结果是:它显示了模型,并且是动画的,但是模型一直“跟随”我,而不是停留在 AR 空间中的相同位置。奇怪的是,它不仅停留在屏幕上的同一位置,而且在 AR 空间中一直漂浮在我的头顶。

我对 3D 事物太陌生,无法弄清楚发生了什么。你们有什么想法吗?

代码是这样的。

0 投票
4 回答
27394 浏览

ios - 如何创建逼真的 .scn 文件?

查看苹果示例 AR 应用程序,有许多看起来很逼真的对象(杯子、蜡烛等)。但是在 Xcode 上使用场景工具包编辑器很明显,这只允许您创建基本对象。

我的问题是,可以使用哪些软件/文件来创建逼真的scn对象?我确信有软件可以让您创建 3D 模型并将它们转换为scn文件。就是不知道用什么软件或者可以转换成什么文件scn

注意:我知道这个问题对于 Stackoverflow 指南来说可能过于模糊/宽泛。我只是不知道在哪里提出我的问题,这似乎是最好的地方

0 投票
1 回答
519 浏览

ios11 - 转换后的 SCN 文件(来自 DAE 文件)未显示在场景视图中

我从这里下载了一个DAECollada 文件,并在最新版本中打开并将其转换为文件。Xcode betaSCN

我使用此方法加载场景对象(其中modelName= modelfileExtension= scn):

然而,什么都没有出现!只有当我加载dae文件(通过更改fileExtension= dae)时,恐龙才会出现,但恐龙的闪烁真的很奇怪。

而且我不明白为什么这不起作用,因为如果Apple提供了从daescn的转换,我觉得使用结果文件Xcode应该很容易。scn

任何帮助,将不胜感激!

代码

恐龙.swift

VirtualObject.swift

ViewController.swift

0 投票
3 回答
13992 浏览

ios - 是否可以像在 Vuforia 中一样在 ARKit 中跟踪对象?

如果 Apple 的 ARKit 像 Vuforia 一样支持 3D 对象跟踪(甚至图像跟踪),我找不到任何信息。我不想在世界任何地方放置 3D 模型。相反,我想检测一个特定的 3D 对象并将 AR 对象放置在该对象的前面和顶部。

简单的例子:我想在现实世界中追踪一辆特定的玩具车,并在 AR 场景中添加一个扰流板。

有人可以向我提供可能与否的信息吗?

0 投票
2 回答
2133 浏览

ios - ARKit – iOS 中的 SCNNode 旋转问题

我正在尝试通过观看 WWDC 2017 视频来创建演示应用程序。

上面的代码工作正常并正确显示平面。但是点击它会改变快照的旋转,尝试了不同的方法但没有任何效果。

任何帮助将不胜感激。