使用 ARKit 和 SCNKit 定位虚拟资产
Positioning virtual assets with ARKit and SCNKit
我正在尝试更好地理解 SCNKit 和 ARKit 并有一个准系统 Xcode 部署了 9 个增强现实应用程序并在我的 iPhone 上工作(我将其用作简单测试设备)。
此应用程序的源代码是 here。
基本上,应用程序启动,相机初始化,它在场景(世界视图)内渲染 3D 战斗机,其方式类似于 Pokemon Go 将怪物注入您的相机视口(无论您将相机指向何处)在)。很酷!
这段代码全部由 Xcode 为我 auto-generated 编写。因此,我试图了解确定 位置 到 position/orient 战斗机的逻辑所在(标题为 art.scnassets/ship.scn
的 SCN 文件)。从 here 我们看到喷气式飞机正在装载:
override func viewDidLoad() {
super.viewDidLoad()
// Set the view's delegate
sceneView.delegate = self
// Show statistics such as fps and timing information
sceneView.showsStatistics = true
// Create a new scene
print("Hello there Mr. Zac")
let scene = SCNScene(named: "art.scnassets/ship.scn")!
// Set the scene to the view
sceneView.scene = scene
}
但我不明白该应用程序如何选择 位置来放置 jet/ship 并将其定向到哪个方向。我问是因为作为第一步,我想尝试重新定位喷气式飞机,然后将其换成我自己的资产文件。
那个"logic"如有,住在两地
ship.scn
文件不仅定义了模型,还定义了模型在场景中的位置。 (也就是说,在全局 "world" 坐标 space 中。)
在该 Xcode 项目模板中附带的 scn
文件中,模型位于类似 0, 0, -0.5
的位置,因此如果将相机放置在坐标原点系统,船直接出现在镜头前,距离半米。
ARKit 本身定义 scene/world space 相对于设备的初始真实世界 position/orientation。 By default,该坐标系的 z 轴与设备的初始方向匹配,因此当您启动 AR 会话时,任何放置在 "in front of" 坐标原点的东西都会出现在相机前面。
我正在尝试更好地理解 SCNKit 和 ARKit 并有一个准系统 Xcode 部署了 9 个增强现实应用程序并在我的 iPhone 上工作(我将其用作简单测试设备)。
此应用程序的源代码是 here。
基本上,应用程序启动,相机初始化,它在场景(世界视图)内渲染 3D 战斗机,其方式类似于 Pokemon Go 将怪物注入您的相机视口(无论您将相机指向何处)在)。很酷!
这段代码全部由 Xcode 为我 auto-generated 编写。因此,我试图了解确定 位置 到 position/orient 战斗机的逻辑所在(标题为 art.scnassets/ship.scn
的 SCN 文件)。从 here 我们看到喷气式飞机正在装载:
override func viewDidLoad() {
super.viewDidLoad()
// Set the view's delegate
sceneView.delegate = self
// Show statistics such as fps and timing information
sceneView.showsStatistics = true
// Create a new scene
print("Hello there Mr. Zac")
let scene = SCNScene(named: "art.scnassets/ship.scn")!
// Set the scene to the view
sceneView.scene = scene
}
但我不明白该应用程序如何选择 位置来放置 jet/ship 并将其定向到哪个方向。我问是因为作为第一步,我想尝试重新定位喷气式飞机,然后将其换成我自己的资产文件。
那个"logic"如有,住在两地
ship.scn
文件不仅定义了模型,还定义了模型在场景中的位置。 (也就是说,在全局 "world" 坐标 space 中。)在该 Xcode 项目模板中附带的
scn
文件中,模型位于类似0, 0, -0.5
的位置,因此如果将相机放置在坐标原点系统,船直接出现在镜头前,距离半米。ARKit 本身定义 scene/world space 相对于设备的初始真实世界 position/orientation。 By default,该坐标系的 z 轴与设备的初始方向匹配,因此当您启动 AR 会话时,任何放置在 "in front of" 坐标原点的东西都会出现在相机前面。