简单AR相机
为手机添加了一个简单的ar相机功能,点击按钮进入相机,手指点击屏幕,屏幕上就会出现一个模型供观赏,用户旋转模型,放大模型,细致观察模型。
为此也在网上了解了一番,实现ar相机首先要导入两个框架
导入两个框架后,要了解几个必须要使用到的类:ARConfiguration, ARSCNView, ARSession。
先分别创建这三个属性,并利用懒加载初始化这三个属性。
注意的是,不用自己手动创建相机,当创建ARSCNView后,系统会帮我们生成一个场景Scene, ARSession, 和相机。
这三个属性配置完成之后,就可以显示相机的界面了,我们在ViewDidApear方法中,将ARSCNView添加到控制器的view上,然后开启AR会话ARsession就可以有画面了。
因为是在网上看到的,作者推荐将添加ARSCNView放到viewDidAppear方法中,有些不解,于是我就在viewdidload和viewwillappear方法中分别添加了一下,比较了一下区别,最后发现果然viewDidAppear方法中添加视图,界面是最流畅的。放在其他两个方法中,切换相机的时候见面都会黑屏或者白屏1s左右,体验不好。
可以显示相机了,但是ar相机中还没有模型显示,也算不上是ar相机。模型文件我是在一个网站上随便下载的一个模型。网站好像叫free3D,里面好多模型。下载的时候也要注意,有的模型附带好多图片和渲染文件,一定要下载全,不然模型会很丑。下载完成后,将模型文件整个拖入工程中就可以了。写一个touchbegin方法,点击屏幕添加模型:
还有一点要注意就是,调整模型在界面中的距离,由于不同的模型大小不同,如上图,可以利用scale属性调节模型大小,利用position属性设置模型在屏幕中的定位位置,我找的模型如果不设置,默认是0,0,0定位的话,镜头中看到的画面就是自己身处于模型中间,很尴尬。