【装逼特技】系列还有兄弟篇:
AR/VR目前被很多人看好,苹果CEO库克也多次公开表态支持AR,相信苹果在不久就会推出AR相关开发系统.
所以现在楼主带大家先来一个简单的AR入门,了解一下大概
我们使用国内比较有名的跨平台SDK-----EasyAR,再加上苹果2014年推出的三维建模SceneKit来尝试创建一个简单(粗糙)的AR小应用
基本能用的效果有两个,一是识别到衣服上的图案则播放视频,这是EasyAR自带的功能,只要稍做修改就可以完成;
二是识别到勋章时,显示星球模型,这个模型用SceneKit搭建
下面大概说一下思路:先到EasyAR官网免费申请个key,然后就可以把官方demo运行起来了,这里必须是在真机上运行.我是在官方的helloARvideo这个demo的基础上修改的.
功能一,播放视频:1.导入图片素材;2.在targets.json中添加图片信息;3.在OpenGLView.mm中找到render方法,修改判断条件和播放的视频地址.
功能二,显示星球:
在OpenGLView.mm中有一个HelloARVideo的类,这是个c++的类,在这里面识别图片成功后会返回一个4*4的矩阵Matrix44F,这个矩阵就包含了图片的缩放,旋转,平移信息,用"胶水代码"将其转换成OpenGLView这个OC类的SCNMatrix4矩阵,这样就能在外部用OC方法来使用了;
在ViewController.m中放一个SCNView对象,这是用来显示SceneKit三维对象的view,并创建星球模型sunNode;
在ViewController.m中放一个glView对象(OpenGLView类)用来显示相机看到的画面,将glView中的SCNMatrix4矩阵值赋值给星球模型的self.sunNode.transform,让星球模型根据识别到的图片而变形,这样看上去就像是图片上长了一个星球一样.
目前,由于本人不懂c++,不懂openGL,也不太懂4*4矩阵的旋转变换,星球的旋转看起来有点失真,不论如何调整都是怪怪的,还请大家轻喷.
总之这只是个最简单的入门尝试而已,仅供装逼,出现任何意外本人概不负责.
代码地址看这里: https://github.com/XanderXu/EasyAR-SceneKit