gpt4 book ai didi

ios - 使用 ARKit 和 SCENEKit 定位虚拟 Assets

转载 作者:行者123 更新时间:2023-12-01 18:39:02 24 4
gpt4 key购买 nike

我正在尝试更好地理解 SCNKit 和 ARKit,并在我的 iPhone(我将其用作简单的测试设备)上部署并运行准系统 Xcode 9 增强现实应用程序。
这个程序的源代码是here .
基本上,应用程序启动,相机被初始化,并以类似于 Pokemon Go 将怪物注入(inject)相机视口(viewport)(无论您将相机指向何处)的方式在场景(世界 View )内渲染 3D 战斗机。很酷!
这段代码都是 Xcode 为我自动生成的。因此,我试图了解决定战斗机在哪里定位/定向的逻辑存在于何处(标题为 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
}
但我不明白该应用程序如何选择将喷气式飞机/船放置在何处以及将其定向到哪个方向。我问是因为第一步我想尝试重新定位喷气式飞机,然后将其换成我自己的 Assets 文件。

最佳答案

对此的“逻辑”(例如有任何逻辑)存在于两个地方。

  • ship.scn文件不仅定义了模型,还定义了模型在场景中的位置。 (也就是说,在一个全局“世界”坐标空间中。)

    scn在 Xcode 项目模板中附带的文件中,模型的位置类似于 0, 0, -0.5 ,因此如果将相机放置在坐标系的原点,则船会直接出现在相机前方,半米外。
  • ARKit 本身定义了相对于设备的初始真实世界位置/方向的场景/世界空间。 By default ,该坐标系的 z 轴与设备的初始方向相匹配,因此当您启动 AR session 时,任何放置在坐标原点“前面”的东西都会出现在相机前面。
  • 关于ios - 使用 ARKit 和 SCENEKit 定位虚拟 Assets ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46494945/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com