Hello,Cardboard!!-如何开发一个最简单的Cardboard虚拟现实应用(一)

温馨提醒,本篇为介绍篇,如果只想看如何开发的具体步骤请参看《Hello,Cardboard!!-如何开发一个最简单的Cardboard虚拟现实应用(三)》

前述:恕我啰嗦一下,主要照顾对cardboard不太了解的朋在,Cardboard是由Google公司的两位巴黎办公室的员工利用业余时间创作出来的作品,它最大的特点就是将原来人们以为高大上的虚拟现实技术以廉价的方式带进了公众的视野,到目前为止,google已推出了改良版的cardboard 2代盒子,相比1代,2代改善了成像,增加了视野范围等。软件方面,google推出了两套SDK代开发者使用,一套是cardboard sdk for unity,这是专为unity游戏开发引擎开发的开发工具包,另一套就cardboard sdk for android,这是专为android系统开发的工具包。其它的知识,随着朋友们逐步参于到社区活动当中,会有不断深入了解。

本帖记录了我如何作为一个小白开发出一个cardboard虚拟现实系统的整个过程,希望能帮助同样是小白,而又对虚拟现实非常感兴趣的朋友开始进入这一充满想像力的技术领域。

一、我们来看一下整个系统的组成:

解释一下上面图中的含义,

1、一个cardboard虚拟现实系统包含了硬件和软件;

2、硬件包含了一个Cardboard盒子,Cardboard盒子相当于整个系统的支架,它长成这样:

其采用分屏式3D成像原理,使每只眼睛只能看到手机屏幕的一半,然后通过软件在屏幕上生成左右两个画面,同时这两张画面按照人的左右眼视距对同一场景进行显示,这样,最终在人的大脑中加工成3D立体画面感。

像这样:

3、Cardboard除了需要实时生成像上面这样的3D画面,为了实现沉浸式虚拟现实的效果,它还要做一件重要的事-追踪玩家头部转动,并根据转动角度实时地调整生成的3D画面,这一系列的活动,都是在智能手机上完成的,这里提一下,cardboard采用手机来作为系统的一部份,使得大多数人都能轻易地体验虚拟现实,但其不足之处亦非常明显,即性能受限,对于大型动作游戏场景无法获得较高的帧率,影响了玩家的体验。关于cardboard如何发挥出它的最大优势,找到性能和效果的平衡,带给用户最好的体验,也正是我们的社区要探究的一个重要问题。

4、硬件部份还有一个重要角色,即外围交互设备;

在虚拟的世界中,玩家有一个最本能的需求,即与其中的角色进行交互,玩家看到的、听到的都是由手机中的软件实时生成的,从技术层面上说,这种交互就是与手机中软件应用的交互,因此必然需要借助一些穿戴的硬件设备来将玩家的身体信息采集后传入手机中。

当前还没有一套完整的标准去规定外围设备应该做成什么样的?采用什么协议与主机交互?因此,外围设备的开发现阶段也是针对性的,不同的开发平台,外设之间不能直接通用,比如为oculus开发的设备也许就不能直接运用于htc的vive;

在虚拟世界中,玩家可以以全身参于与其中角色的交互,交互方式丰富多样,也许不会有一款外设将所有交互方式都统一。因此,怎样设计和制作cardboard虚拟现实系统的外围交互设备,使其给玩家在不同的场景下带来最大的方便和乐趣,也是我们的社区要探究的一个重要问题。

时间: 2024-10-05 23:28:37

Hello,Cardboard!!-如何开发一个最简单的Cardboard虚拟现实应用(一)的相关文章

jQuery框架开发一个最简单的幻灯效果

在线演示 在这个课程中,我们将介绍如何使用jQuery来开发一个最简单的图片幻灯效果. 立刻观看互动课程:jQuery框架开发一个最简单的幻灯效果 阅读原文:jQuery框架开发一个最简单的幻灯效果 jQuery框架开发一个最简单的幻灯效果

使用Python开发一个超级简单的接水果小游戏,零基础也可以学会

Pylash项目地址 创建项目 这样的话我们的项目就创建好了,然后只用往Main.py里填写代码运行即可. 编写Hello World小程序 编写游戏 有以上对pylash的小小了解,我们接下来可以开始编写游戏了.首先我们把第四行以后所有代码删除. 引入所需 全局变量 游戏里面要用到一些全局变量,大家先浏览一遍,不同知道它们是干什么的,之后会用到: 加载资源 创建开始界面 在main函数中我们调用了gameInit函数,所以添加这个函数: 开始游戏 舞台层鼠标点击事件的监听器是startGame

自己动手模拟开发一个简单的Web服务器

开篇:每当我们将开发好的ASP.NET网站部署到IIS服务器中,在浏览器正常浏览页面时,可曾想过Web服务器是怎么工作的,其原理是什么?“纸上得来终觉浅,绝知此事要躬行”,于是我们自己模拟一个简单的Web服务器来体会一下. 一.请求-处理-响应模型 1.1 基本过程介绍 每一个HTTP请求都会经历三个步凑:请求-处理-响应:每当我们在浏览器中输入一个URL时都会被封装为一个HTTP请求报文发送到Web服务器,而Web服务器则接收并解析HTTP请求报文,然后针对请求进行处理(返回指定的HTML页面

作业1开发一个简单的python计算器

开发一个简单的python计算器 实现加减乘除及拓号优先级解析 用户输入 1 - 2 * ( (60-30 +(-40/5) * (9-2*5/3 + 7 /3*99/4*2998 +10 * 568/14 )) - (-4*3)/ (16-3*2) )等类似公式后,必须自己解析里面的(),+,-,*,/符号和公式(不能调用eval等类似功能偷懒实现),运算后得出结果,结果必须与真实的计算器所得出的结果一致 hint: re.search(r'\([^()]+\)',s).group() '(-

【Nginx】开发一个简单的HTTP模块

首先来分析一下HTTP模块是如何介入Nginx的. 当master进程fork出若干个workr子进程后,每个worker子进程都会在自己的for死循环中不断调用事件模块: for ( ;; ) { .... ngx_process_events_and_timers(cycle); /* 调用事件模块 */ .... } 事件模块检测是否有TCP连接请求,当收到一个SYN包后,由事件模块建立一条TCP连接.连接建立成功后,交由HTTP框架处理,HTTP框架负责接收HTTP头部,并根据头部信息将

使用PHP开发一个简单的后台接口(响应移动端的get请求和post请求)

写一个简单的后台,在接到app请求数据的时候,返回对应的内容: index.php文件如下: <?php $id = $_POST['id']; if($id==001){ echo json_encode(array('id'=>001,'name'=>'zhangsan')); } if($id==002){ echo json_encode(array('id'=>002,'name'=>'lisi')); } if($id==003){ echo json_encod

开发一个简单实用的android紧急求助软件

之前女朋友一个人住,不怎么放心,想找一个紧急求助的软件,万一有什么突发情况,可以立即知道.用金山手机卫士的手机定位功能可以知道对方的位置状态,但不能主动发送求助信息,在网上了很多的APK,都是鸡肋功能,都需要解锁.并打开软件,真正的紧急情况可能没有时间来完成这一系列操作. 于是我自己做了一个这样的软件,在紧急情况下,连续按电源键5次即可发送求救短信和位置信息给事先指定的用户,这个操作在裤兜里就能完成.原理很简单,就是设置监听器捕获屏幕的开关,在较短的时间内屏幕开关达到一定次数后,触发手机定位,定

Python开发一个简单的BBS论坛

项目:开发一个简单的BBS论坛 需求: 整体参考“抽屉新热榜” + “虎嗅网” 实现不同论坛版块 帖子列表展示 帖子评论数.点赞数展示 在线用户展示 允许登录用户发贴.评论.点赞 允许上传文件 帖子可被置顶 可进行多级评论 就先这些吧... 知识必备: Django HTML\CSS\JS BootStrap Jquery 设计表结构 1 # -*- coding:utf-8 -*- 2 from django.db import models 3 from django.contrib.aut

EBS Form开发建立一个最简单的Form并部署到到EBS中

1.      从要开发的EBS服务器上,拷贝下来$AU_TOP/forms/US/和$AU_TOP/resource/目录下的文件到Windows目录. 2.      编辑Windows注册表,把上面的两个目录加入到FORMS_PATH项上面去,如下图,不然的话在引用或者打开EBS上的已有的fmb时会报错. 3.      打开Form Builder,选择菜单File->New->Form using Template…,如下图. 4.      然后选择我们从$AU_TOP/forms