今天尝试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,并做了一些小修改。
对于具体的实现还有应用,还没有进行深入了解。
相关推荐
本教程将探讨Unity与AR Core、EasyAR以及Void AR的整合,帮助你掌握这些AR平台的使用方法。以下是对每个部分的详细解释: 1. **Unity引擎**: Unity是一款跨平台的游戏开发引擎,不仅用于游戏制作,还广泛应用于AR...
EasyAR是一款领先的增强现实(AR)开发平台,为开发者提供高效、易用的工具集,以便在Unity3D环境中构建AR应用。它特别适合初学者,因为其用户友好的界面和直观的操作流程使得AR技术的学习门槛降低。 **一、EasyAR...
在描述中提到的"unity_ios_coloring"可能是一个基于Unity引擎开发的iOS应用项目,它使用了EasyAR SDK来展示AR内容。 首先,让我们深入了解一下EasyAR。EasyAR是一款跨平台的AR开发套件,支持Android、iOS、Windows...
EasyAR是Unity的一个流行AR插件,它提供了简单易用的API和丰富的功能,使得开发者可以快速地实现AR功能。例如,EasyAR支持识别和跟踪图像、物体,甚至是3D空间点云,这为AR涂色应用提供了基础。在本案例中,EasyAR...
EasyAR SDK 2.3.0开发学习,Unity 2018.1.9f。_EasyARLearn2019
3. **跨平台**:Unity Easy Save支持所有Unity支持的平台,包括桌面、移动、Web以及VR/AR设备,确保游戏在不同设备上的数据一致性。 4. **加密安全**:提供加密选项,保护玩家数据不被篡改或非法访问,增加游戏的...
总结起来,EasyAR SDK样品集是学习和掌握EasyAR SDK的关键,它通过丰富的实例展示了AR开发的核心技术和应用场景。无论是想要入门AR开发,还是寻求创新应用的开发者,都能从中受益匪浅,快速提升自己的AR开发能力。...
在Unity中,为了提升用户体验和简化游戏操作,开发者经常使用各种插件,Easy Touch就是其中之一。这个插件是专门为触摸设备设计的,允许用户通过触摸屏幕来控制游戏对象,比如实现角色的移动和旋转。 Easy Touch ...
Unity3D是一款强大的跨平台3D游戏开发引擎,被广泛应用于游戏开发、虚拟现实(VR)、增强现实(AR)以及交互式应用的创建。在本案例中,"unity3d4.3.2f1cmac"指的是Unity3D 4.3.2版本的Mac版安装文件或开发环境,适用于...
EasyMovieTexture是一款专门针对Unity的插件,它的主要功能是提供一个易于使用的接口,允许开发者在Unity场景中无缝地播放电影纹理。这个工具的核心特性在于其对移动端设备的优化,使得视频播放不仅流畅,而且能够在...
1. **EasyAR 介绍**:EasyAR 是一个全面的 AR 解决方案,提供 SDK 支持多种平台,包括 iOS、Android、Unity、Unreal 等。它包含图像识别、云识别、3D 物体追踪等功能,使得开发者能够轻松地集成 AR 功能到自己的应用...
整个过程中,我们学习了如何利用EasyAR SDK和Unity 3D来实现基础的AR功能。这对于想要入门AR开发的朋友来说是一个非常好的起点。未来还可以进一步探索更多高级功能和技术,如手势识别、多人交互等,不断提升AR应用的...
Unity3D是一款强大的跨平台游戏开发引擎,广泛应用于虚拟现实(VR)、增强现实(AR)、游戏、应用程序和其他交互式内容的创建。这个“unity3d插件大合集”包含了超过20个GB的资源,预示着它可能包含了大量的插件、...
Unity是由Unity Technologies开发的一款实时3D(RT3D)创作工具,广泛应用于游戏开发、建筑可视化、虚拟现实(VR)、增强现实(AR)等领域。它提供了一个集成的环境,允许开发者使用C#编程语言和一套丰富的内置资源...
"Matte Shadow.shader" 很可能是一个基于Unity引擎的Shader,因为Unity是AR开发中广泛使用的跨平台游戏引擎。Unity支持自定义Shader,开发者可以通过编写Shader语言(如GLSL或HLSL)来实现特定的光照和阴影效果。在...
Unity引擎是一个强大的跨平台3D游戏开发工具,它不仅在游戏行业广泛应用,也在非游戏领域,如建筑可视化、虚拟现实(VR)和增强现实(AR)中扮演着重要角色。本文以洛阳师范学院学生的本科结业论文为基础,探讨如何利用...
EasyAR是一个跨平台的AR引擎,支持iOS、Android、Unity等平台,提供完整的AR解决方案,包括目标追踪、图像识别、空间定位等多种功能。它的易用性和高性能使其在AR开发者中颇受欢迎。 “HelloARTarget”是EasyAR官方...
Unity3D是Unity Technologies开发的一款跨平台的游戏开发引擎,广泛应用于游戏、虚拟现实(VR)、增强现实(AR)以及互动媒体等领域。涂涂乐触屏源码利用Unity3D的强大功能,实现了对触控输入的精确捕捉和处理,使得...
Easy Touch 5 5.0.18,作为一款备受赞誉的Unity官方Store推荐的Touch Plugin,以其卓越的性能和全面的兼容性,为开发者提供了强大的触控解决方案。本文将深入探讨Easy Touch 5的最新版本,以及它如何在iOS、Android...