利用 ARKit 拓展现实世界
1. ARKit 与 SceneKit 的结合
思考一下,3D 游戏是一个玩家控制相机的三维世界。那为何不把虚拟相机换成真实相机呢?而且不用按按钮来移动相机,直接移动实体相机就行。当有了这个想法,ARKit 和 SceneKit 的结合就显得顺理成章了,增强现实(AR)其实就是控制虚拟相机的另一种方式。
为了让 SceneKit 与 ARKit 兼容,苹果创建了 SceneKit 核心组件之一的子类。这个组件就是 SCNView,SCNView 类用于使用 SceneKit 渲染场景。当把 SceneKit 和 ARKit 结合时,需要使用 ARSCNView。ARSCNView 是 SCNView 的子类,它配置为使用 ARSession 来帮助渲染场景,还能控制相机并自动估算光照,这能确保 3D 模型尽可能完美地融入现实世界。
在 SceneKit 中渲染内容时,使用 SCNNode 实例来表示场景中的内容。使用 ARSCNView 时,所有 SCNNode 会自动映射到 ARAnchor 实例,无需手动转换,这让 SceneKit 和 ARKit 的结合简单直接,开发者可以专注于打造出色的 AR 体验。不过,如果想手动转换某些节点,可以实现 ARSCNDelegate 协议,按需提供自定义节点映射。
2. ARKit 与 SpriteKit 的结合
如果不需要 3D 模型,或者想找一种更快捷简单的方式开启 ARKit 之旅,那么 SpriteKit 可能是你的理想之选。
SpriteKit 是苹果的二维游戏渲染引擎。iOS 上一些知名游戏就是用 SpriteKit 开发的,虽然它