ARKit是苹果在 2017 WWDC 发布的一款全新的增强现实框架技术产品.
ARKit 可以将 iOS 设备的摄像头和设备动作检测 (Motion) 功能,集成到您的应用或者游戏当中,从而为用户提供增强现实体验。ARKit原框架是苹果系统自带的ARKit框架,这里主要介绍ARKit插件集成到unity的功能和表现,这样可以在Unity项目中使用ARKit SDK的所有功能。
Unity ARKit下载地址
官方unity ARkit支持论坛
深度了解ARkit原理
ARkit官方文档
ARkit1.5介绍
ARkit2.0介绍
Multi-platform Handheld AR 介绍
ARkit版本更新简介:
ARkit1.5:
1、ARImageAnchor(图像识别)
2、ARKitRelocalize(重新加载AR会话)
3、ARPlaneMesh(不规则平面识别)
4、ARSetWorldOrigin(重新设置坐标原点)
5、ARVideoFormats(AR画面分辨率)
6、Vertical Planes(支持垂直平面识别)
7、Autofocus(自动对焦)
ARkit2.0:
1、AREnvironmentTexture(支持实时获取环境纹理)
2、ARObjectAnchor(支持3D物体识别)
3、ARWorldMap(AR世界地图)
4、ObjectScanner(支持3D物体扫描)
5、TongueAndEyes(面部识别支持眼睛和舌头的定位)
6、Image tracking(加强图像识别)
ARkit:1.5版本
Xcode版本:Xcode9.3及以上
iOS系统:iOS11.3及以上
iOS设备:处理器A9及以上(6S机型及以上)
Unity:2017.1.0及以上
可以手机连接在unity编辑器上进行调试,而不用打包在真机上进行测试。步骤,把UnittyARKitRemote场景设置Development Build勾选,打包出来装在手机上,手机连接电脑,在unity 的Console控制台上选择连入的手机,再点击场景的Connected to ARKit Remote device 按钮进行调试连接。
AddRemoveAnchorExample:添加和移除锚点测试,用户自己可定义锚点,添加和删除。
FaceTracking:脸部追踪相关案例,只支持iphoneX
FocusSquare:arkit扫描标识和识别标识状态切换案例
UnityARBallz:点击在扫描平面生成球的demon场景(具体模样看AssetStory的arkit插件介绍图片展示)
UnityARKitScene:主场景案例,结合了模型展示,平面识别,锚点识别,光照识别
UnityAROcclusion:遮挡剔除场景(虚拟物体与现实场景可互相遮挡案例)
UnityARShadows:模型显示阴影场景
UnityParticlePainter:在空间画图的案例场景
UnityARImageAnchor:图像识别案例场景
UnityARKitRelocalize:重新加载会话案例场景
UnityARPlaneMesh:不规则平面扫描案例场景
UnityARSetWorldOrigin:设置世界原点坐标案例场景
UnityARVideoFormats:映射周围环境材质案例场景
1、AR的UI显示要另外用一个UI摄像机,因为拍照功能默认是使用AR摄像机拍照,这样可以避免UI也被拍摄在内。
2、实现AR时,必须要有一个专门用于AR的摄像机,目前AR摄像机是ARCamera。且必须保证AR摄像机的深度优先级低于AR的UI摄像机且高于其他摄像机。
3、AR结合的是摄像机呈现的真实世界,其尺寸以真实世界为准。Unity单位里的1,在现实里呈现出来就是1米。
4、由于现有大部分游戏并不遵循真实世界单位,或者在AR呈现出的游戏世界需要缩放摆放至桌面,所以移植需要相应修改。
5、不提倡剧烈运动,会有抖动问题。苹果的局限。
6、尽量选取周围环境识别度高(光照,环境颜色不单一)的进行AR功能。
7、获得所需结果后,禁用平面检测。平面检测需要的计算量更大。因为放置在场景中的对象不需要一直做平面检测,所以在获得结果以后可以禁用平面检测。