美文网首页
我的AR学习笔记

我的AR学习笔记

作者: Hiker5 | 来源:发表于2018-11-30 18:08 被阅读20次

AR出来已经有些年日了,而我现在才去学习惭愧惭愧。其实网上已经有很多资料了,而我现在只是做一个归纳总结,以达到一个我自己看起来比较好理解的效果。
所参考到的文章: ARKit从入门到精通SceneKit框架详细解析直击苹果 ARKit 技术
官方资料传送门:ARKit官方文档SceneKit官方文档AR官方视频
话不多说,开始。

1.首先是概念问题

新鲜事物的学习都是要从概念开始学习的,我这里说的概念并不是严格意义上的概念,只是我对AR的一些通俗的理解。学习AR必不可少的要先了解它所用到的框架。
(好吧,AR的严格概念:增强现实技术(Augmented Reality,简称 AR),是一种实时地计算摄影机影像的位置及角度并加上相应图像、视频、3D模型的技术,这种技术的目标是在屏幕上把虚拟世界套在现实世界并进行互动。)

  • ARKit:增强现实
  • SceneKit:3D场景引擎
  • SpriteKit:2D场景引擎

关于三者的关系:SceneKit 与 SpriteKit二者都可以实现增强现实,现在主流的都是用SceneKit 3D实现的,ARKit框架本身只包含了相机追踪,并不能直接加载模型,所以只能依赖SceneKit或SpriteKit游戏引擎去加载模型,从而实现AR(ARKit限制:iOS11以上且iPhone6s及以上的A9处理器才能使用ARKit) 本文,主要也是讲述SceneKit如何实现AR。
概念总结:

一:相机捕捉现实世界图像(由ARKit来实现)
二:在图像中显示虚拟3D模型(由SceneKit来实现)

2.几个重要的类

了解了基本概念,现在我们就要了解AR的实现需要用到哪些类,以及每个类负责了哪一块的工作。首先看一张框架关系图


ARKit框架图.png

从图中我们可以看到AR技术用到的主要框架是ARKit和SceneKit,常用的几个重要类:

  • ARScnView:继承自SCNView,用来展示3D场景与模型;
  • ARCamera:通过相机来捕捉真实世界的图像;
  • ARSession:会话,连接ARScnView与ARCamera,使ARCamera捕捉到的图像可以以3D场景的形式展示在ARScnView上;
  • ARConfiguration:运行会话就需要进行会话配置,ARConfiguration类或其子类,确定了ARKit将如何跟踪设备相对于现实世界的位置和运动,从而影响你创建的AR体验的种类;
  • ARFrame:ARKit传输ARCamera获取到的跟踪信息和图像参数的对象;
  • SCNScene:3D世界的场景,万物皆Scene
  • SCNNode:节点,就是3D模型

ARConfiguration的子类主要有以下三种:
ARWorldTrackingConfiguration:提供高品质的AR体验,使用后置摄像头精确跟踪设备的位置和方向,并允许平面检测和点击测试。
AROrientationTrackingConfiguration:提供使用后置摄像头并仅跟踪设备方向的基本AR体验。
ARFaceTrackingConfiguration:提供使用前置摄像头并跟踪用户脸部的移动和表情的AR体验。

AR工作流程图.png

3.创建Demo

了解了概念,知道了有哪些类以及每个类的功能,下面就来实际敲码Demo一下。首先是创建工程,①苹果有专门的AR框架工程“Augmented Reality App”,注意在“content Technology”选择Scenekit;②我们也可以创建“Single View App”,然后再在controller上添加ARSCNView等AR所需的控件。
下面说一下AR特有文件的创建,如下图。


Demo文件.png 文件创建.png
3D模型需要专门的3D软件制作,动画效果则可以自己在Xcode上创建设置。具体各个参数的效果可参考"SceneKit框架详细解析"
动画参数设置.png
以上。都是些比较基础入门的东西以及一些个人的理解,文章开头的参考文章有不少干货,大家可以去看看。后续再放个小Demo

相关文章

  • 我的AR学习笔记

    AR出来已经有些年日了,而我现在才去学习惭愧惭愧。其实网上已经有很多资料了,而我现在只是做一个归纳总结,以达到一个...

  • AR学习笔记

    概念 增强现实(Augmented Reality)技术是一种将虚拟信息与真实世界巧妙融合的技术,广泛运用了多媒体...

  • Python科学计算

    $$\mathrm{《Python科学计算》学习笔记}$$ [TOC] Numpy 数组入门 数组创建 np.ar...

  • ARKit部分API翻译

    ARKit部分API翻译 说明:学习AR查阅API翻译的,有点粗糙,个人笔记,别吐槽 目录 ARSessionDe...

  • HAproxy 4层负载 7层负载

    声明:所有文章只作为学习笔记用,转载非原创https://blog.csdn.net/genglei1022/ar...

  • k8s 基础概念图

    声明:所有文章只作为学习笔记用,转载非原创 https://blog.csdn.net/tycoon1988/ar...

  • /proc 和 /sys目录的作用

    声明:所有文章只作为学习笔记用,转载非原创https://blog.csdn.net/z1026544682/ar...

  • 了解一下 ARCore

    本篇内容是在了解ARCore的视频中记录的笔记。 AR AR 全称 Augmented Reality(增强现实)...

  • ar眼镜软件产品设计经验

    随着 AR 的发展和这些年的工作学习,我收获了不少 AR 产品相关的设计知​识。在这里,我想跟大家分享关于 AR ...

  • AR技术入门:你必须要知道的4种增强现实SDK

    随着AR的火爆,越多人想学习AR技术(公众号: 幻眼增强现实 ),但是对于新手来说太难了,不妨可以先学习下AR技术...

网友评论

      本文标题:我的AR学习笔记

      本文链接:https://www.haomeiwen.com/subject/lxiaqqtx.html