1、AR在直播中的应用AR技术与现状AR核心概念ARKit运行机制ARKit Demo 任意门ARCore 运行机制VR/AR/MR 介绍01|02|03|04|05|06|ARCore 与 ARKit 区别07|AR在直播系统中的应用08|PART 01VR/AR/MR 介绍01VR(Virtual Reality)虚拟现实,是一种可以创建和体验的计算机仿真系统。用户可以完全沉浸到该环境中并在该环境中进行各种交互。VRAR(Augmented Reality)增强现实,就是将虚拟世界与现实世界结合到一起,并能进行互动。增强现实技术,是一种实时地计算视频图像的姿态(位置和角度)并在视频里加上相应图
2、像、视频、3D模型的技术。ARMR(Mixed Reality)混合现实技术,是虚拟现实技术的进一步发展,该技术通过在虚拟环境中引入真实场景。也就是说,MR是合并现实和虚拟世界而产生的新的可视化环境。MRPART 02AR技术与应用现状022017年6月5日,WWDC上苹果的发布 ARKit。世界为之震惊,AR从之前的象牙塔走入了“寻常百姓家”。ARkit的推出,加速了AR行业的发展。2017ARKit发布TANGO在 ARKit之前,Google的 Tango项目特别吸引人们的眼球,但它需要专门的硬件。ARKit推出后,只需要一台手机就可做到了。Tango从目前的情况看,AR技术很可能在以下
3、几个行业里最先被应用推广。AR应用场景AR游戏电商教育直播PART 03AR核心概念03特征点特征点是计算机视觉中的一种关键技术。通常用在人脸识别中。特征点是指图像灰度值发生剧烈变化的点或者在图像边缘上曲率较大的点。像边缘特征点,角点等都是常见的特征点。ARAR运动跟踪ARKit 使用视觉惯性测距技术获取手机的姿态(位置与方向)。其原理是,对摄像头采集到的图像序列进行计算机视觉分析,找出其特征点在连续的图像帧之间的位置变化,再通过设备的运动传感器,最终得到设备的位置和方向。AR场景理解场景理解中最重要的就是平面检测。也就是识别出地面、桌子等平面。识别的方法,是在 3D 空间中,Y值为0的一个区
4、域。AR光线评估通过手机估算出当前环境的光线强度,这样可以让虚拟物体显示在真实环境中更加逼真。ARPART 04ARKit运行机制04ARKit的核心类ARSessionARSCNViewARCameraSCNSceneARKit虚拟物品SCNNodeSCNMaterial ARConfiguration ARAnchor ARFrameARKit运行机制PART 05ARKit Demo 任意门05PART 06ARCore 运行机制06Google的 ARCore 只实现在AR的核心算法ARCore核心Session类ARCore 的核心是Session类,它实现在了上面的三大技术。运动跟
5、踪、场景理解、光照评估ARCORESessionOpenGL ESGLSurfaceViewARCore运行机制要了解 Surface、SurfaceTexture、SurfaceView、GLSurfaceView、TextureView 等组件的相关知识。View组件AR 矩阵变换 什么是 EGL OpenGL ES APIOpenGL ESPART 0707ARCore与ARKit的迥异AR ARKit 类和API相对更完整。ARCore只关注核心算法。ARKit可以商用,ARCore只能在有限的机型上测试,未来的路还很长。ARKit与ARCore它们使用相同的核心算法。PART 080
6、8AR在直播系统中的应用音视频通话的基本原理:采集,编码,传输,解码,渲染。AR在视频通话中的实现与本地的AR应用有着本质的区别。视频通话与ARAR远端视频如何在虚拟屏幕上渲染?视频通话与AR要解决的难点AR与非AR客户端,甚至 ARKit 与 ARCore如何互通?帧率过高导致传输码流过大AR端无法直接从 ARCamera 获取视频configuration.planeDetection=.horizontalsceneView.debugOptions=ARSCNDebugOptions.showFeaturePointssceneView.automaticallyUpdatesLigh
7、ting=truesceneView.session.run(configuration)设置参数及启动SessionExtension ARViewController:ARSCNViewDelegatefuncrenderer(_renderer:SCNSceneRenderer,didAdd node:SCNNode,for anchor:ARAnchor)获得锚点及设置虚拟物品Guard let portalScene=SCNScene(named:Model.scnassets/tjgc.scn)else return Let portalNode=portalScene.rootNode.childNode(withName:tjgc,recursively:false)!展望裸3D离我们还很遥远,但通过手机我们可以实现部分黑科技,可以将 AR 认为是一个瓶子,这个瓶子可以装天下目前AR才刚刚起步我们可以畅想,但还需要生态,AR之路并非坦途AR