太虚AR(VOID AR)
官方网站:
https://www.voidar.net
官方QQ群:277574712
技术支持:
http://ar@voidar.net
商务合作:
http://bd@voidar.net
微信公众号:voidar
导言[ 非常重要 ]
VOID SLAM技术应用时,一定要将“模型的底面贴着地面”,获得更好的贴地效果,以达到更好的体验。
请仔细阅读并参照本教程中[ 四、实现流程 ] -> [ 第八步、模型底面贴着地面,获得更好的贴地感 ]
对比图效果示意:
动态图效果示意:
一、简介
VOID SLAM技术,不需要Marker图像,就能在现实环境中自由放置虚拟内容,创造身临其境的AR体验。
二、阅读指南
本教程主要介绍如何在Unity环境下进行操作。
默认读者您拥有一定的软件使用、应用开发经验。
本教程只会对Unity的基础使用进行简要说明,如果希望更深入的了解,您可以访问Unity官网查看更加详细的教程。
三、搭建环境
在进行具体操作前,您需要安装下列软件,准备如下环境:
操作系统
- Windows 7 或更高版本
- OS X 10.10 或更高版本
Unity版本
支持Unity 3D版本为:5.2.x - 5.6.x(32位或者64位),推荐使用5.4以后的版本(渲染效果提升)
下载地址:
https://unity3d.com/cn/get-unity/download/archive
本教程中使用的Unity版本为:5.5.2(64位)
太虚AR SDK
官方网站:
https://www.voidar.net
下载地址:
https://www.voidar.net/downloads.php
四、实现流程
第一步、新建Unity工程
打开Unity,新建一个工程。填写Project name为“VOID SLAM”、选择保存的位置,点击[ Create project ]。
第二步、导入太虚AR SDK
选中[ Assets ] -> [ Import Package ] -> [ Custom Package... ],导入太虚AR SDK。
选择下载好的SDK文件(.unitypackage),点击[ 打开 ]按钮。
弹出界面,点击[ Import ],导入过程需要耐心等待一段时间。
如果弹出“API Update Required”界面,请点击[ I Made a Backup, Go Ahead! ]。
第三步、删除Main Camera
Unity3D打开时默认是新的Scene,新的Scene自带一个Main Camera和Directional Light对象,我们需要用SDK的ARCamera,故将默认的Camera删除。
右键选中场景中自带的“Main Camera”,点击[ Delete ] 删除。
第四步、拖入预制件“ARCamera”
展开[ Assets ] -> [ VoidAR ] -> [ Prefabs ]目录,将预制件“ARCamera”拖至场景中。
操作成功后显示如下。
第五步、设置ARCamera
选中ARCamera,查看右侧的“Inspector”栏,设置“Void AR Behaviour (Script)”组件属性。
- 设置MarkerType = "Markerless"
第六步、设置Access Key和Secret Key
打开云平台网址,注册账号并登录。
网站地址:
http://cloud.voidar.net
进入云平台,新注册用户需要先创建数据库,创建开发者自己的识别库以后,才能管理识别资源。
点击[ 创建数据库 ],每个账号只允许创建1个数据库。
弹出界面填写数据库名称(支持中文),本教程中将数据库名称定为“VOID SLAM”,填写完成后点击[ 保存 ]。
完成后,即可获得“Accsess Key”和“Secret Key”。
返回Unity,选中ARCamera,查看右侧的Inspector栏,继续完成“Accsess Key”、“Secret Key”的设置。
第七步、添加模型
右键点击场景,弹出列表中点击[ Create Empty ]。
创建了一个“GameObject”。
选中“GameObject”,并将其坐标调整为(0,0,0)。
右键点击“GameObject”,列表中选中“3D Object”,点击[ Cube ]。
在GameObject下方,创建了一个3D模型“Cube”。
为了生成模型的时候,模型大小比较合适,选中“Cube”,调整模型的位置和大小。
Position调整为(X , Y , Z = 0 , 0 , 0)
Scale调整为(X , Y , Z = 0.3 , 0.3 , 0.3)
第八步、模型底面贴着地面,获得更好的贴地感[ 非常重要 ]
VOID SLAM技术应用时,一定要将模型的底面贴着地面,获得更好的贴地效果,以达到更好的体验。
要使得模型的底面贴着地面,有2种方法:
1. 调整模型的中心点:
使用3d Max等软件,将3D模型的中心点,调整至“模型底部中心”。本教程不详细介绍,具体的操作可以参考:改变模型轴心点的方法(
http://jingyan.baidu.com/article/3c48dd3464c86ce10be358e3.html?qq-pf-to=pcqq.c2c)
2. 添加参照平面,Unity中直接调整模型坐标位置
Unity中新建的模型,中心会默认在模型正中。通过添加一个Plane平面做参照,将模型底面贴着Plane平面即可。
下文将按照该方法进行设置。
新建的“Cube”模型,中心默认在模型正中。
创建一个Plane作为参照,右键点击场景,列表中选中“3D Object”,点击[ Plane ]。
选中“Plane”,将其坐标调整为(0,0,0)。
选中3D模型“Cube”,拖动坐标轴调整其位置,让其底面贴着Plane。(X , Y , Z = 0 , 0.15 , 0)
底面紧贴Plane,模型的坐标位置就调整完成了。
右键选中“Plane”,点击[ Delete ],删除参照物,调整完成。
第九步、设置触发事件
先选中“ARCamera”,然后再鼠标左键点击“GameObject”,按住不放,将其拖入“MakerlessNode”变量中。
设置完成后,显示如下。
选中“GameObject”,点击[ Add Compoent ],添加“Markerless Tracking“脚本组件。
脚本绑定成功后,显示如下。
接着,需要创建一个脚本,实现Markerless跟踪功能。在Assets目录下,创建一个“Folder”。
修改文件名为“Scripts”。
右键选中“Scripts”文件夹,创建一个新的C#脚本。
修改文件名为"SLAM"。
双击“SLAM”脚本,复制粘贴如下代码,并保存脚本。
选中“ARCamera”,点击[ Add Compoent ],添加“SLAM”脚本。
脚本绑定成功后,显示如下。
第十步、保存场景
选中[ File] -> [ Save Scenes ] ,进行场景保存。
设置文件名为“VOID SLAM”,点击[ 保存 ]按钮。
第十一步、打包Android或iOS
VOID SLAM是太虚AR自主研发的多元融合的技术,需使用惯性测量单元(简称IMU)。
因PC端没有IMU,故无法进行调试,需要打包至手机端(Android或iOS)才能体验到实际效果。
打包流程分为“Android打包”、“iOS打包”。
因字数限制,具体的打包流程,详见下方回帖。
五、操作说明
Start:启动VOID SLAM(Markerless),初始化虚拟物体(为了得到更好的体验效果,点击启动时,请对准一个近处、特征丰富的平面)
Reset:重置VOID SLAM(Markerless),移除虚拟物体,停止跟踪。
点击[ Start ]已经生成了虚拟物体的情况下,如果需要切换环境,请先点击[ Reset ],再点击[ Start ]进行初始化。
平面要求:
1. 特征丰富
2. 近处取景
平面示意:
至此,VOID SLAM制作完成。