ar开发 unity3d

2018-07-15 18:16:03 qq_35361471 阅读数 3619
  • Unity 值得看的500+ 技术内容列表

    Unity3D是由Unity Technologies开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。

引言:2016年的AR游戏Pokemon GO火遍全球(除了中国),让我第一次了解到AR的世界。神奇的虚拟对象出现在现实世界中,感觉小时候的游戏王这类的动画可以成为现实。 最近小生学习了高通的Vuforia,本篇着重介绍入门操作。

开发版本:Unity 2018.1.3f1

适合人群:对U3D有基础认识,想要学习AR的童鞋


一、什么是增强现实?

增强现实(Augmented Reality,简称 AR)是指把现实世界中某一区域原本不存在的信息,基于某种介质并经过仿真后再叠加到真实世界,被人类感官所感知的技术。

特点:真实世界和虚拟世界的信息集成,无缝衔接   ;具有实时交互性    ;在三维空间中定位虚拟物体


二、Vuforia学习

1、工作原理

用摄像头拍摄现实场景,通过计算机视觉技术捕获识别标记,实时记录它的位置和方向,数据平台中存储的虚拟3D模型对象与真实场景相叠加。

P.S. Unity2017.2版本开始将Vuforia内置,在安装时即可下载


2、Vuforia识别机制

通过检测自然特征点的匹配来完成,将识别图检测出的特征点保存在数据库中,然后将实时检测出真实图像中的特征点与数据库中识别图的特征点数据进行匹配

1、服务器对上传图片进行灰度处理,图片变为黑白图像

2、提取黑白图像的特征点

3、将特征点数据打包

4、程序运行时,对比特征点数据包

注意:图片中尖锐可辨,轮廓清晰的地方就是特征点,例如矩形四个角就是四个特征点,而圆形没有特征点

识别卡片需要材质较硬,不要有褶皱,轮廓清晰,丰富的细节,较高的对比度

特别注意:整幅图片的8%的区域作为功能排斥缓冲区,该区域不会被识别


3、实现步骤

<1>申请密钥

现在Vuforia的官网注册开发者账号,并申请项目密钥(License Key),免费开发者每月有1000次的扫描次数,而且左下角有水印。不过,用于开发学习也足够了。


创建完项目后,即可获取密钥,密钥是需要复制到项目中的配置文件中的

添加数据库,用于保存识别图的数据

添加识别图,点击Add Target按钮

将识别图上传至网站,生成识别图的特征点数据包,点击右侧Download Database按钮,下载Unity数据包
P.S. Rating一列中,星级越高说明特片的特征点越多,越容易识别,建议不低于三颗星

<2>前期设置

打开Player setting窗口 勾选开发VR选项

发布平台需要改为Android

Player Setting中Other Setting一栏中需要取消勾选Android TV Compatibility,因为Vuforia不支持Android TV的发布。


将官网申请的秘钥复制到Resources文件夹中VuforiaConfiguration的App license key一栏


属性:

camera device mode :设置默认识别速度优先还是质量优先

max simultaneous tracked images :最大识别图数量

max simultaneous tracked objects :最大识别对象数量

camera direction :默认摄像机是前置还是后置

device type :默认为手持handhelds


<3>导入Vuforia

如果是Unity 2017.2之前的版本,需要在官网下载Vuforia插件,然后导入Unity即可。

而这之后的版本,选择GameObject-Vuforia-AR Camera,导入AR Camera的同时,会自动导入Vuforia相关内容。

将之前在官网下载的Unity数据包导入到Unity项目中

导入Image Target,选择GameObject-Vuforia-Image


将Image Target的数据库选择为之前导入的Unity包内的数据库


将一个3D模型作为ImageTarget的子物体


然后,打包运行即可!
下图为编辑器模式下演示:

结束语:至此,您可以实现单卡显示的功能,之后,会继续记录Vuforia的其他功能,还请关注我哦!


2018-06-02 09:40:55 qq_38643064 阅读数 686
  • Unity 值得看的500+ 技术内容列表

    Unity3D是由Unity Technologies开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。

Unity3D是一个跨平台的游戏引擎,它提供了3d游戏的大部分基础功能实现,比如物理碰撞、3d模型显示、光照等功能,简化了使用者开发游戏的过程,更能够节省非常多的成本,unity3d与别的游戏引擎最大的不同是,它的代码是跨平台的,也就是说,别的引擎一款游戏要写好几份代码,它上面只需写一份就能在所有系统上运行。

unity是使用javascript 与c#进行游戏开发的,javascript 和c#都可以作为实现unity3d的脚本语言,但是关于那个脚本语言更适合来开发unity3d呢,js适合个人开发,C#适用于公司开发。U3D官方团队基于数据分析做出结论,U3D团队会把支持的重心转移到C#,也就是说文档和示例以及社区支持的重心都在C#,C#的文档会是最完善的,C#的代码实例会是最详细的,社区内用C#讨论的人数会是最多的。所以,选择C#开发是最适合的。

对于学习unity3d,首先要掌握c#语言,然后才能按照路线开始正式学习

1、Unity3D程序开发基础
1)C#语法基础
2)OOP(面向对象)
3)网络通信
4)内存管理
从基础讲解C#语言,熟悉字段、属性、接口、委托、事件,掌握C#面向对象编程的核心思想。让学员掌握Unity3d各个方面的知识和基本使用方法,为后面深入的学习打下良好基础。
2、Unity3D高级阶段
1)Unity3D物体系统高级部分
2)Untiy3D动画系统高级部分
3)常规设计模式
4)动画,跟随等相关插件学习
5)第1,3人称项目讲解
在原来的学习基础上,深入学习Unity3D物体系统、动画系统的高级部分,例如骨骼的绑定,动画角色的创建等。配合游戏案例进行深度讲解,让学生充分了解动画的制作过程。
3、游戏跨平台发布
1)IOS版发布
2)安卓版发布
3)网页版发布
4)PC版发布

2019-01-07 13:23:59 weixin_41814169 阅读数 369
  • Unity 值得看的500+ 技术内容列表

    Unity3D是由Unity Technologies开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。

EasyAR引擎简介

EasyAR是做好用的且免费的增强现实(Augmented Reality)引擎,EasyAR为Unity开发和本地开发提供了大量的可直接运行的样例。

这些样例演示了各种target的创建方式和包含流媒体和透视在视频内的视频播放,以及更加高级的实时target创建和AR涂涂乐。

 

EasyAR自问世以来从未停止向前演进,自首个公开发布版本以来的主要更新内容如下,

  • 增加更多完整实例
  • 增加多目标跟踪支持
  • 优化降低功耗
  • 移除Unity对Visual C++运行时库的依赖
  • 提升跟踪稳定性和准确性
  • 改善首次使用体验
  • 改善视频播放支持,增加透明视频支持
  • 改善前置摄像头和动态摄像头切换
  • 改善Unity支持和兼容性
  • 改善Unity接口

EasyAR的优势

EasyAR 支持使用平面目标的AR,支持1000个以上本地目标的流畅加载和识别,支持基于硬件解码的视频(包括透明视频和流媒体)的播放,支持二维码识别,支持多目标同时跟踪。

EasyAR支持PC和移动设备等多个平台,EasyAR不会显示水印,也没有识别次数限制。

EasyAR下载

官网:http://www.easyar.cn/

 

EasyAR插件的使用

1、在EasyAR官网注册账号

2、申请应用Key

进入开发中心

点击添加SDK license key

1、

2.

 添加完后,点击以添加的Key

 

 

 

将key复制下来

3、新建项目,导入EasyAR插件

4、将EasyAR/Prefabs下的EasyAR_Startup添加到场景中,将刚刚复制的key粘贴到对应位置

说明:
EasyAR_Startup,这个prefab作为一个简单的组合提供,对于通常的AR场景来说也是足够的。你可以使用EasyAR提供的其它小型prefab构建一个更加复杂的AR场景。

 

 

5、将将EasyAR/Prefabs/Primitives下的ImageTarget添加到场景中

删除Image TargetBehavior脚本,重新新建一个脚本,并继承ImageTargetBehaviour。重写代码如下:

注意:需要引用命名空间 using EasyAR;

 

 

说明:
* Path为需要识别的图片路径
* Name为需要识别的图片文件名称
* ActiveTargetOnStart: 是否在MonoBehaviour.Start被调用时加载target
* Storage: target存储位置的类型
* size:改变可视物体的大小

6、识别目标

在Assets目录下新建文件夹,StreamingAssets,将需要扫描的图片手动到此目录中

 

 

在在MyEasyARImageTarget组件上,设置相关参数,如下图:

 

 

7、将扫面图片需要显示的3D物体添加到ImageTarget下并进行调整

8、发布APK

注意,这里的Package Name 必须和EasyAR网站申请Key时所填的PackageName(Android)相同(Android平台)

 

原文地址:https://www.cnblogs.com/Mr-Miracle/p/9274882.html

 

 

 

2018-07-31 14:51:13 rainwell 阅读数 1406
  • Unity 值得看的500+ 技术内容列表

    Unity3D是由Unity Technologies开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。

Android

iOS

AR

VR

...

2019-06-25 14:48:27 HuangZT521 阅读数 2714
  • Unity 值得看的500+ 技术内容列表

    Unity3D是由Unity Technologies开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。

自2017.4以后的unity版本,AR的SDK已经被集成,那么如何用2018unity3d制作AR呢?

1.首先打开Unity3d2018,然后打开File->Building Setting,接着打开PlayerSetting,找到XR Setting 设置,勾选Virtual Reality Supported,Vuforia Augmented Reality这时会弹出下载一个文件,只需下载即可。
在这里插入图片描述在这里插入图片描述在这里插入图片描述
2.这时打开GameObject会发现仍旧没有Vuforia Engine,不要着急关闭Unity3d,重新打开,这时会出现你想要的结果。
在这里插入图片描述
3.接下来则是注册账号,上传识别图片,打开网址添加链接描述,点击Log in 注册,注册时会有个信息发到邮箱,点击邮箱则激活。打开Develop,出现License Manager,点击Get key(这一步必须要做),自行创建一个Key后,打开Key,复制秘钥。紧接着打开Unity3d,选中AR Camera,点击Open Vuforia Engine Confiuguration。然后在Global下将Key复制进去。(注意:没有出现 Open Vuforia Engine Confiuguration的童鞋肯定是没有配置好Vuforia参照第一步哦,若配置好还是没有出现,则退出Unity重新开一遍即可。)
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
4.然后打开Target Manager,点击Add database,然后选中已经创建好的database,选择要识别的物体如图片,3D物体等。然后点击你已经创建的识别图片(图片最好是越清楚越好,尽量选方形图片,色彩丰富的哦),然后点击Download database.这样所有准备工作都就绪。
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
5.最后一步了,将第四步下载的Database(其实就是一个package)导入unity3d,创建一个VRCamera,及Target Image。然后将你想要识别的3D Object作为Target Image的子物体,点击运行,即可。
在这里插入图片描述
在这里插入图片描述

Unity3d之AR小游戏

阅读数 3983