【CityHunter】Unity3D设计AR探索模式
为了增加游戏的乐趣性,我对项目进行了Unity3D的引入,经过一番折腾,终于做出了一个基本的AR探索模式的基本雏形。

途中的小方块就是虚拟物体,因为是静态图片,所以也不能看出什么来,只能文字形容一下:方块自身带有自转功能,且所有的方块是围绕着Unity主摄像机公转,这就像太阳系。
上面都是废话,实际跟AR有关系的效果是这样的:
场景本身是一个具有东南西北指向的坐标系,然后我们的主摄像机(打开应用后的镜头)就处于所有方块的中间,也就是公转中心,而主摄像机本身加入了陀螺仪传感器,会跟着手机实际镜头的角度变化而移动,这样解释可能不清楚,打个比方,就说上图的方块,如果我手机往其他任何角度位置转动,方块出现在手机上的位置是会根据镜头旋转角度的相反方向而改变的,这样就产生了真是的场景效果。

[图的中心位置,就是主摄像机的位置]
在制作此效果时,所遇到的比较大的难题是:
因为我们只是开启了背景摄像头,也就是说,“实景”只不过是一个“背景”。举一个栗子:
根据上方的那张图片,我们可以看出,黑色方块,是离我们比较近的,至少比“脚”离镜头更近一些,因为方块挡住了脚。那假设,你现在,拿你的小手指,竖在你镜头面前最近的位置,你会发现。。不管你手指离摄像机多近,方块依然在你手指前面,会挡着你的手指,造成不真实的感觉。我们希望达到的效果,自然是根据手指的位置,判断小方块到底是在手指的前面,还是手指的后面,从而改变方块究竟是遮住手指,还是手指遮住方块。如果说,解决的办法,恐怕我目前的水准是办不到,而且这个也超出了我的技术领域,毕竟我不是做图像识别技术的。解决的方法可能可以这样子:摄像机采集图像中的物体,然后根据物体的透视效果,判断物体距离镜头的距离,然后可以有接口能返回物体离镜头距离的数值,这样后面的效果处理啊,距离判断啊,就是我这个领域能做的事了。看来要达到真正的AR应用,还需要大厂的SDK支持。
【CityHunter】Unity3D设计AR探索模式的更多相关文章
- php模式设计之 工厂模式
承接上篇php模式设计之 单例模式,(虽然好像关系不大).今天讲述第二种基础的模式设计——工厂模式. 那么何为工厂模式? 从名字来看,似乎看不出什么端倪.工厂模式,和生产有关?还是和生产流程有关?难道 ...
- 基于 MongoDB 动态字段设计的探索 (二) 聚合操作
业务需求及设计见前文:基于 MongoDB 动态字段设计的探索 根据专业计算各科平均分 (总分.最高分.最低分) public Object avg(String major){ Aggregatio ...
- .NET 云原生架构师训练营(设计原则与模式)--学习笔记
在复杂系统的架构设计中引入设计原则与模式,能够极大降低复杂系统开发.和维护的成本 目录 几个问题 为什么要学习设计模式 优良架构设计的具体指标 理解复杂系统 面向对象思想(指导复杂系统的分析.设计.实 ...
- 【Unity3D】AR应用中,关于东南西北方位的判断。
这篇文章的应用场景是这样子的: 首先我们要做的是一个带有LBS定位服务(比如高德地图.百度地图等)AR功能,在这个场景中,会有一些地图上的”点“(如派出所.学校)是我们需要显示在我们的AR镜头上的,如 ...
- 高通vuforia+Unity3D 制作ar app
很简单就可以用Unity3D做出增强现实的一个小例子 新人第一次写博客,若出现错误望指正^_^ 需要下载de东西: unity3d 5.0 http://unity3d.com/get-unity ...
- Android 腾讯入门教程( 智能手表UI设计 和 MVC模式 )
*****注意到mvc 在android 中是如何进行分层分域执行各自的功能.**** 官方推荐的按钮尺寸是48像素 前端之Android入门(1):环境配置 前端之Android入门(2):程序目录 ...
- (十三)WebGIS中工具栏的设计之命令模式
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1.背景 从这一章节开始我们将正式进入WebGIS的工具栏中相关功能的 ...
- .NET应用架构设计—工作单元模式(摆脱过程式代码的重要思想,代替DDD实现轻量级业务)
阅读目录: 1.背景介绍 2.过程式代码的真正困境 3.工作单元模式的简单示例 4.总结 1.背景介绍 一直都在谈论面向对象开发,但是开发企业应用系统时,使用面向对象开发最大的问题就是在于,多个对象之 ...
- .NET应用架构设计—表模块模式与事务脚本模式的代码编写
阅读目录: 1.背景介绍 2.简单介绍表模块模式.事务脚本模式 3.正确的编写表模块模式.事务脚本模式的代码 4.总结 1.背景介绍 要想正确的设计系统架构就必须能正确的搞懂每个架构模式的用意,而不是 ...
随机推荐
- jQuery对表单的操作
表单应用 一个表单有3个基本组成部分: 表单标签:包含处理表单数据所用的服务器端程序URL以及数据提交到服务器的方法 表单域:包含文本框.密码框.隐藏域.多行文本框.复选框.单选框.下拉选择框和文件上 ...
- 查看数据库表的数据量和SIZE大小的脚本修正
在使用桦仔的分享一个SQLSERVER脚本(计算数据库中各个表的数据量和每行记录所占用空间)的脚本时,遇到下面一些错误 这个是因为这些表的Schema是Maint,而不是默认的dbo,造成下面这段SQ ...
- javax.net.ssl.SSLHandshakeException(Cas导入证书)
一.报错: javax.net.ssl.SSLHandshakeException二.原因分析:CAS部署时,常常要涉及到HTTPS的证书发布问题.由于在实验环境中,CAS和应用服务常常是共用一台PC ...
- .NET应用架构设计—面向查询服务的参数化查询设计(分解业务点,单独配置各自的数据查询契约)
阅读目录: 1.背景介绍 2.对业务功能点进行逻辑划分(如:A.B.C分别三个业务点) 2.1.配置映射关系,对业务点配置查询契约(构造VS插件方便生成查询契约) 2.2.将配置好的映射策略文件放在调 ...
- 【SQL篇章--DATABASE/EVENTS】
[SQL篇章][SQL语句梳理 :--基于MySQL5.6][已梳理:DATABASE/EVENTS][会坚持完善] 目录: 1. Data Definition Statements: 1.1 ...
- 内存管理内幕mallco及free函数实现
原文:https://www.ibm.com/developerworks/cn/linux/l-memory/ 为什么必须管理内存 内存管理是计算机编程最为基本的领域之一.在很多脚本语言中,您不必担 ...
- 使用 python 实现 wc 命令程序的基本功能
这里使用了 python 的基本代码实现了 Linux 系统下 wc 命令程序的基本功能. #!/usr/bin/env python #encoding: utf-8 # Author: liwei ...
- android html.fromHtml 用例
private String content = "<b>标题</b><br>" + "内容<br>": mCo ...
- 通过PHP自带的$_SERVER判断 手机访问网站自动跳转到手机版
需要有PC版网站和移动版网站,当手机访问域名的时候,通过PHP自带的$_SERVER判断浏览设备并跳转到移动版页面.如果是PC电脑打开网址,则不跳转直接访问pc版. <?php //php判断客 ...
- 学习大神笔记之“MyBatis学习总结(三)”
一.连接数据库的配置单独放在一个properties文件中 创建db.peoperties----保存数据库配置信息 driver=com.mysql.jdbc.Drive ...