1、 图片识别与建模 2、 虚拟按键小游戏 3、开发城市定向越野运动 MR 游戏【可选】 游戏要求:
首先是AR的介绍:增强现实(Argumented Reality (AR))是一种将真实世界信息和虚拟世界信息“无缝”集成的新技术,是把原本在现实世界的一定时间空间范围内很难体验到的实体信息(视觉信息,声音,味道,触觉等),通过电脑等科学技术,模拟仿真后再叠加,将虚拟的信息应用到真实世界,被人类感官所感知,从而达到超越现实的感官体验。 接着根据教程下载安装AR SDK:进入Unity3d,选择File->Build Settings->PlaySettings->XRSettings,点击支持虚拟现实即可开始下载Vuforia。 接着是申请密钥,进入vuforia官网,点击右上角注册,接着点击Develop->LicenseManager->Get Development Key 根据提示创建以后一个项目就创建好了。 然后添加数据库用于保存识别图的数据。点击Develop->Target Magager->Add Database 这里选择Single Images做为识别图并填写Width,我填写的是0.3m,我选择的图片如下,这样便创建好数据库了。 上传之后会生成识别图的特征点数据包,Vuforia还会为你的识别图打分,星级越高说明识别效果越好。图像的星级 我们会注意到将识别图上传到数据库时,target项右侧会有星级显示,星级越高代表识别图的质量越高。经试验,影响识别图最主要的因素就是待识别图的对比度,这里应该要极力避免使用有很多连续相同或相似大色块的图片,因为分析识别图特征点的原理是 根据色块边缘 来决定的,色彩变化越丰富,色块边缘、棱角就越多,进而特征点就越多,而特征点越多就意味着识别图质量越高。另外,以下三点是识别图质量最主要影响的三个方面:
using System.Collections; using System.Collections.Generic; using UnityEngine; using Vuforia; public class control : MonoBehaviour, IVirtualButtonEventHandler { private GameObject dra; void Start() { VirtualButtonBehaviour[] vbs = GetComponentsInChildren<VirtualButtonBehaviour>(); for (int i = 0; i < vbs.Length; ++i) vbs[i].RegisterEventHandler(this); dra = transform.Find("dragon").gameObject; } public void OnButtonPressed(VirtualButtonBehaviour vb){ switch (vb.VirtualButtonName){ case "vb1": dra.transform.position = new Vector3(0.2f, 0f, 0f); break; case "vb2": dra.transform.position = new Vector3(-0.2f, 0f, 0f); break; } } public void OnButtonReleased(VirtualButtonBehaviour vb){ switch (vb.VirtualButtonName){ case "b1": break; case "b2": break; } } }
这样就完成了图片识别与建模和虚拟按键小游戏两个任务,最后实现图如下
在这次作业中我第一次接触到了AR技术并实现了简单的AR小游戏,学习了Vuforia在Unity中的使用方法,也让我体会到了AR的奇妙之处。这次作业也是3d课程的最后一次作业,在一学期的3d课程的学习之中我也学习到了很多,从最基础的Unity小游戏开始一步步变难,我也对Unity的适用于变成越来越熟悉,这些都使我受益匪浅。最后也感谢老师和TA的悉心教导以及师兄师姐博客的鼎力支持。 Github地址:ARButton 演示视频:AR制作虚拟按钮