ARKit入门

流程

  • 1 . ARConfiguration(建议用ARWorldTrackingConfiguration负责追踪相机的运动)
lazy var arSessionConfiguration:ARWorldTrackingConfiguration = {
        let c = ARWorldTrackingConfiguration()
        c.planeDetection = .horizontal //追踪方向 目前就这一种
        c.isLightEstimationEnabled = true//自适应灯光
        return c
}()
  • 2 . ARSession(负责管理相机追踪配置及3D相机坐标)
lazy var arSession: ARSession = {
        let s = ARSession()
        return s
}()
  • 3 . ARSCNView(展示3D界面)
  lazy var arSCNView: ARSCNView = {
        let v = ARSCNView(frame: self.view.bounds)
        v.delegate = self
        v.session = self.arSession
        v.automaticallyUpdatesLighting = true
        return v
}()
  • 4 . 开启AR相机扫描
//这个是swift的方法  OC方法 - (void)runWithConfiguration:(ARConfiguration *)configuration NS_SWIFT_UNAVAILABLE("Use run(_:options:) instead");

 self.arSession.run(self.arSessionConfiguration, options: ARSession.RunOptions.resetTracking)
  • 5 . 添加虚拟物体
//获取虚拟物体的场景  这个是系统自带的小飞机 自己导入素材的时候如果获取场景失败记得查看 BuildPhase 的CopyBundleResource 添加上
guard let scene = SCNScene(named: "art.scnassets/ship.scn") else{return}
//AR世界万物皆节点 -有位伟人这么说过 
//每个Scene中有且只有一个节点,里面的所有物体都是其子节点!
let shipNode = scene.rootNode.childNodes.first!
//将这个节点添加到我们视图的Scene中 位置默认是相机位置
//可以为其设置一个位置    其属性  open var position: SCNVector3
arSCNView.scene.rootNode.addChildNode(shipNode)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.什么是增强现实(Augmented Reality,简称AR)? 是一种实时地计算摄影机影像的位置及角度并加上...
    xtXuTeng阅读 507评论 0 0
  • 转载请注明出处:http://www.jianshu.com/p/0492c7122d2f 1.1-写在前面的话 ...
    坤小阅读 17,895评论 18 76
  • 简介 增强现实技术(Augmented Reality,简称 AR),是一种实时地计算摄影机影像的位置及角度并加上...
    锦鲤跃龙阅读 609评论 0 0
  • 每一扇门后都有一个故事或喜或悲! 这种拱形的大门已经很少见了,门上陈旧的痕迹彰显这它的年龄,门口的两块大石也挡住了...
    陌路丿人生阅读 355评论 1 1
  • 郭相麟 寻一方净土 看四季轮回的不断变化 是眼中的境美 还是心境突显的美景 宁静致远 细细品味才知道 大自然的神韵...
    郭相麟阅读 188评论 0 0