unity学习之EasyAR(一)

今天尝试AR技术,3D引擎为unity。

以前有看到别人用unity做一些AR效果,感觉很酷炫很高深。

内行看门道,其实很简单,使用EasyAR,轻松实现AR效果。

————————————————————————————

首先要准备好工具。

直到目前发帖,Unity版本的最新是 5.6.2, 发布于2017年7月21号。

EasyAR_SDK_2.0.0,发布于2017年5月30号

进入EasyAR网站http://www.easyar.cn/,进入下载,下载EasyAR_SDK_2.0.0_Basic_Samples_Unity注意这里下载的是unity用的。

在下载的时候,可以在网站上注册一个用户。注册之后,点击网站上“开发”进入个人的应用列表,创建一个应用。名称随意。


 之后在操作一栏有“查看key”,这个key接下来有用。(必须要用到这个key)

————————————————————————————

现在应该下载完毕了,自行把它解压,打开unity,导入第一个样例。

建议看看入门指南,点击点击网站上“支持”。

(http://www.easyar.cn/doc_sdk/cn/Getting-Started/Compile-and-Run-EasyAR-Unity-Samples.html)

进入场景,并选中对象EasyAR_Startup


 在这里填入你的key,不然无法运行。


 好了,现在可以运行了,程序打开了电脑的摄像头。

现在,就算是我们现在根本不了解这个样例要怎么工作,但是我们在之前发现场景里面有几个东西:

很自然的可以想到“是不是有一个一样的图片进入摄像头,程序就会识别然后把模型画在上方?”

尝试一下,把项目中的图片搞到手机里(会用unity的都知道怎么找到图片的位置),然后用手机打开图片并且对准摄像头........................and


 效果就出来了,是不是很神奇,我当然是一点也不奇怪。

————————————————————————————

样例实现了,现在尝试自己研究研究。

关于如何识别图片?

首先能找到的图片,在Textures里面,试着用替换的方式,我把上图用到的图片替换为了自己的校园卡图片,结果运行的时候,并不能识别,但是继续用上图的图片,就能够识别并且显示同样的效果。

说明用于识别的图片,并不放在Textures文件夹里面。那么它会在什么地方呢?

————————

在StreamingAssets文件夹里

我是从别人那知道的,如果我之前不知道的话,我会在项目文件夹里面搜索图片,就会发现这个文件夹里面也有图片!

————————

现在尝试替换里面的图片文件,使用一张同名图片去替换原有图片。

运行,直接拿着校园卡对准摄像头。

好的,现在识别了我们的图片!


那要增加可识别的图片怎么办?

————————————————————————————

除了要在刚刚提到的文件夹里面放入需要识别的图片以外,还要进行一些配置。

使用的是文件夹里面的targets.json,具体如何配置,可参考“支持”里边的“使用手册”里面的“EasyAR Target配置”。——另外其实不配置也行,但是不方便管理。

配置之后如何指定识别图片的时候对应何种模型?

那来看看unity场景里面的3个实例。他们都挂有同样的一个脚本,只是里面参数有些不同。


 英语稍微不差的可看出,Path路径,Name名字。可以看到上边的截图里面Path指向的就是上文提到的json文件,Name则是在json里面设置好的图片的名字。

另外:


 可以看到这个脚本里面路径直接指向图片,没有指向配置文件,所以说,不配置也是可以的。

————————————————————————————

当把我们需要添加的图片放好,修改好配置后。

我们观察样例的那些对象,发现他们在父对象里挂脚本,子对象是需要显示出来的模型,父对象平面就对应于识别出图片之后的图片平面。其实父对象平面可以不渲染,只要把它材质设为空,那么渲染的时候只有模型,没有那个平面了。

现在我们新建一个对象(空对象也可以,当挂上脚本后会自动给上面片(父对象平面)),添加和样例一样的脚本,设置好脚本参数,然后新建一个模型添加到子对象。

尝试一下。

效果没有出现?!

好吧,虽然不知道为什么,但是继续尝试。

我们复制一个样例的对象,一样的,修改参数,改模型。另外父对象的名称是可以随意改的。而且我把父对象的材质设为了空。

之后我们尝试一下.........................

 这样却可以了。

对比新建对象,和复制的对象:

我自己新建的:

 复制修改的:

 区别仅仅是一个是预设一个不是........吗?

注意看Storage一项,我一开始不仔细看,浪费了好多时间,把它设置为assets,尝试。成功。

另外如果直接把预设拖到场景里面实例化它的话(怎么通过一个实例找它的预设对象?点击上图的黄字Prefab旁边的Select),它的Loader项是空,记得给它选上。
 ————————————————————————————

好了,现在我们已经明白如何添加我们要识别的图形并增加显示的模型了。

另外它无法同时识别两种图片(或许可以但是只显示一个模型)


之后就可以自己随便修改做出更好的效果,比如换个好看的模型,并且有模型动画。

上图我这个角度是无法直接识别的,先在一个合适的位置进行识别,然后在慢慢调整到我这个角度。
 ————————————————————————————

今天主要研究了一下官方的第一个样例HelloAR,并做了一些小修改。

对于具体的实现还有应用,还没有进行深入了解。

猜你喜欢

转载自sixsixccff.iteye.com/blog/2383879