什么是虚拟现实?

    虚拟现实的目标:让人们相信真实地处于一个虚拟世界中。要达到这个目标就得让人们的大脑(负责视觉和运动感知部分)欺骗他们。不同技术合在一起才可以创造这种幻觉,包括:
    全立体显示:也称为3D显示或者头显(HMD)。这种显示方式结合的使用了多图像处理、反畸变技术和凸透镜片来让人眼看到深度信息,如此就形成了立体的图形。
    移动追踪硬件:陀螺仪、加速度计以及其它一些组件被用在虚拟现实技术中,这些可以感应我们的身体移动和头部转动,有了这些以后应用程序就可以实时更新需要绘制的图形。
    输入设备:虚拟现实的输入设备不同于传统的方式,它不能简单的用鼠标键盘来输入,而需要创新,比如:手柄、运动传感识别和手势识别等。
    部署终端:包括:计算机硬件、操作系统、支持虚拟现实软件运行的驱动和引擎以及构建这些的工具。
虚拟现实离开了以上四个任何一个条件都达不到完全沉浸的体验。本书后面章节都会围着这四个方面深入探讨,接下来会简单介绍一下这几个方面。

全立体显示

    让人眼感受到具有深度信息的持续的3D渲染是虚拟现实最重要的部分。为了达到这个效果,虚拟现实设备都需要借助一个立体显示设备(也称为3D显示或者头显)。

    过去,消费者虚拟现实设备一直没法推广,其原因是没有价格低廉并且长时间佩带舒适的头显设备。这个局面被OculusVR团队戏剧性的改变了,他们在2012年推出的Oculus Rift这款产品在具有立体显示功能并且内置头动追踪设备,这款产品不仅轻巧而且售价只有几百美元。尽管Oculus Rift第一版(DK1)的分辨率还很低,但这也足以引起一场产业风暴。新版本的Oculus Rift(如图1-2所示的DK2),分辨率、移动追踪性能和显示效果都有所提升。
 
图1-2
    那么,Oculus Rift具体都做了哪些呢?第一,为了产生深度信息,它给每个眼睛生成一张图片,这两张图片在视觉上有一点点偏移量,这样就可以模拟人眼的视差,所谓视差就是人脑处理在不同位置看到的物体而产生的深度信息。第二,产生更好的视觉效果,它将图片扭曲从而模拟人眼的球形表面,通过桶形畸变技术可以达到这个效果。

    有了以上这些技术,Tuscany VR Demo场景在虚拟现实设备中就会看起来如图1-3这样,图1-3是Oculus Rift链接电脑以后通过电脑屏幕看到头显中的真实图像。
 
图1-3
    从软件的角度出发,Oculus Rift的任务就是将例如图1-3的图片每分钟绘制60次(最好可以达到120次),这样就可以避免明显的延迟。如果画面出现延迟,VR的体验就会大打折扣,甚至会引起呕吐反应。具体如何做到没有延迟会在接下来的章节中介绍。

    除了Oculus Rift还有其它的头显设备,我们会在下章介绍。这些头显设备有的运行在PC上,有的运行在移动设备上,有的只能在游戏主机上运行。它们价格不等,品质良莠不齐,不过作为消费者VR设备,我认为Oculus Rift应该是最好的。

《VR入门系列教程》之2---VR头显的更多相关文章

  1. 《VR入门系列教程》之3---运动追踪与输入设备

    运动追踪设备    第二种可以使人脑相信它真实处于虚拟世界的关键技术就是运动追踪技术,它可以通过追踪头部的运动状态实时更新渲染的场景.这与我们在真实世界中观看周围非常类似.    高速的惯性测量单元( ...

  2. 《VR入门系列教程》之19---GearVR开发初识

    本章我们来介绍一下如何在移动VR设备的佼佼者GearVR上进行开发,之前我们在桌面端的VR开发想法可以直接应用在移动端,但是仍然会有些不一样的技术需要注意.这次,我们仍然采用Unity3D引擎构建示例 ...

  3. 《VR入门系列教程》之17---发布第一个应用

    发布运行     Unity可以支持多种目标平台的发布,包括:桌面端.Web端.移动端.游戏主机端.     发布运行之前的Cubes场景至桌面端,我们先选择File->Build Settin ...

  4. 《VR入门系列教程》之16---第一个OculusVR应用

    第一个VR应用    之前我们已经将Oculus的开发包导入到空工程中了,现在我们来构建第一个桌面VR的示例.开发包中已经有一个示例场景,只需要几步就可以让这个场景运行起来.我们将要构建的这个Demo ...

  5. 《VR入门系列教程》之10---3D图形学初识

    第三章 基于Oculus Rift开发桌面端VR应用     接下来的几个章节中我们会进行VR开发的实际操练,本章就从Oculus Rift开发开始,我们会介绍如何开发一个桌面端的VR应用.虽然只是介 ...

  6. 《VR入门系列教程》之8---GearVR

    高端移动虚拟现实设备---三星GearVR     Oculus Rift也许是虚拟现实头显的典范,但是它还是存在许多问题.首先,它需要基于一个具有强大图形计算能力的计算机,而使用一般的笔记本.苹果A ...

  7. 《VR入门系列教程》之7---DK2和Crescent Bay

    The DK2     于2014年春,Oculus发布了第二代开发版头显设备,代号为DK2.与DK1相比,Oculus Rift DK2的外观有很大改进,并且轻了许多,体积仍然比较大,可以罩住大部分 ...

  8. 《VR入门系列教程》之6---VR硬件介绍及DK1

    第二章 VR硬件介绍     本章主要介绍当前比较流行的消费版VR设备,包括VR头显以及应用运行的PC和手机平台.     即使是在这工业高速发展的时代,一些大厂(比如Facebook的Oculus ...

  9. 《VR入门系列教程》之5---应用方向

    VR应用方向     面向消费者的虚拟现实才发展了几年,就出现了大量应用程序,虚拟现实抓住了人们对未来的渴望.开发者甚至想要把整个现实世界都做成虚拟现实,这些都是可以理解的.     但是,现在仍然没 ...

随机推荐

  1. 在SYSTEM权限下以当前用户权限运行程序

    http://download.csdn.net/download/lai444132348/9730266 using System; using System.Runtime.InteropSer ...

  2. C#每天进步一点--引用类型和值类型

    在刚参加工作面试时,我们经常会遇到有关值类型和引用类型的问题,你回答的怎么样直接影响你在别人心目中的印象,你回答的不好说明你对C#没有深入的了解学习,今天我带大家回顾下C#中的引用类型和值类型. CL ...

  3. 原创powershell脚本:通过远程桌面3389黑名单,阻止黑客ip

    远程桌面 3389 ban ip 防火墙 rdp   通过远程桌面3389黑名单,阻止黑客ip.这是一个常见的需求.但我搜遍了谷歌也找不到成品脚本.想做搬运工却做不成,只能自己费尽写.下载备用吧,估计 ...

  4. C语言实现常用排序算法——冒泡排序

    原理:比较临近的两个元素,只要不符合顺序就进行交换:要点:1.不要越界:2.遍历一遍以后最大的元素就会到最后,所以下次遍历就不用遍历整个数组 void bubble_sort(int a[],int ...

  5. Spark —— 高可用集群搭建

    一.集群规划 这里搭建一个3节点的Spark集群,其中三台主机上均部署Worker服务.同时为了保证高可用,除了在hadoop001上部署主Master服务外,还在hadoop002和hadoop00 ...

  6. SSM(二)MyBatis多表联查

    这篇文章写了以下几个简单的例子,用来说明MyBatis多标联查基本语法 1.sql片段的用法 2.一对多查询 3.多条sql的一对多查询 4.多对一查询 5.多条sql一对多查询 6.多对多查询 这里 ...

  7. 强制等待&隐士等待&显示等待&元素定位方法封装

    前言 问题 学习selenium的同学估计大多数都遇见过一个问题 明明页面已经精准的定位到了元素,但是执行脚本的时候却经常报错没找到元素.其实原因很简单,就是脚本执行的速度很快,而浏览器加载页面的时候 ...

  8. mvc中的表现和数据分离怎么理解?

    使用过 JavaScript框架(如 AngularJS, Backbone)的人都很熟悉在UI(用户界面,前端)中mvc的工作机理.这些框架实现了MVC,使得在一个单页面中实现根据需要变化视图时更加 ...

  9. linux命令---grep命令使用

    grep 常用参数: -w 精准匹配 -r 递归匹配 -l 列出匹配内容的文件名称-v 排除 结合sed,批量替换文件内容 sed 's#10.151.30.165#10.0.3.162#g' -i ...

  10. LNet代码分析

    源码版本:lustre-release 2.15.55 介绍 LNet是Lustre的网络模块,代码目录分为了lnet和lnd lnet提供了统一的接口 lnd封装了底层驱动,有socklnd(TCP ...