深入浅出 ARKit

来源:互联网 发布:mac第三方应用商店 编辑:程序博客网 时间:2024/05/29 18:35

什么是现实增强(Augmented Reality)

现实增强是在真实世界中加入计算机所构建的虚拟物体, 通过对真实世界所采集的信息的分析, 虚拟物体可以跟真实世界中的物体互动, 比如遮挡, 碰撞等, 让使用者产生错觉, 如同虚拟物体真实存在于世界. 此技术涉及很多复杂技术, 包括3D建模, 真实感图形绘制, 视频与图像分析等.
其实现实增强技术在电影拍摄中早有应用, 空中大掼篮里动画人物 兔八哥等跟当时的NBA巨星 迈克尔乔丹等 同台竞技, 后来的电影, 如蓝精灵, 魔法奇缘等, 越来越多的出现动画人物在真实世界中场景, 其逼真度, 让你惊叹。 不过那些拍摄都是有人工干预的。
随着计算机科学的进一步发展, 完全没有人工干预的AR 已经走入了人们的日常生活, WWDC 2017上, Apple 的ARKit的发布, 更是现实增强科技的一个大的里程碑, 这标志的AR的开发成本和难度大大降低, 未来AR的产品呈井喷式爆发, 是显而易见的。

OpenGL and SceneKit

唐德刚以他的口述历史系列而闻名于世, 尤其是他的《胡适口述自传》一书, 闻名遐迩, 史学界遂有“欲看胡适,先看德刚“之言. 学习Apple的ARKit 也有异曲同工之理.
ARKit 中, 虚拟物体的渲染是通过SceneKit 来实现的(其实按照官方文档, 虚拟物体可以通过SceneKit或者SpriteKit渲染 因为我是从SceneKit开始看的, 所以本文只提SceneKit) 。 所以想理解ARKit背后的原理,掌握其使用, 不能不先学习SceneKit.
SceneKit 是Apple 为了简化OpenGL/Metal的3D渲染的开发而设计的High Level Framework, 同理, 使用SceneKit, 也最好有OpenGL的相关知识.

SceneKit 的坐标系

这里写图片描述
首先, 虚拟物体要如何放到真实世界中呢? 虚拟的3D世界是需要一个3维坐标系来标示其物体的位置, 形状, 大小等属性的, 同时也需要一个摄像机(Camera)对其物体成像, 在2D的显示器上渲染, 好好看上面的坐标系吧, 未来的开发中需要反复的在脑海中想起这个坐标系的.

写累了, 未完待续.

Reference:

  • https://developer.apple.com/documentation/arkit
  • https://developer.apple.com/documentation/scenekit
  • https://en.wikipedia.org/wiki/Augmented_reality
原创粉丝点击