什么是虚拟现实?

    虚拟现实的目标:让人们相信真实地处于一个虚拟世界中。要达到这个目标就得让人们的大脑(负责视觉和运动感知部分)欺骗他们。不同技术合在一起才可以创造这种幻觉,包括:
    全立体显示:也称为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. Windows下配置QT OpenCV

    OpenCV-Study:Windows下配置OpenCV 本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明. 环境: 主机:XP OpenCV版本:2.4 ...

  2. C#爬虫与反爬虫--字体加密篇

    爬虫和反爬虫是一条很长的路,遇到过js加密,flash加密.重点信息生成图片.css图片定位.请求头.....等手段:今天我们来聊一聊字体: 那是一个偶然我遇到了这个网站,把价格信息全加密了:浏览器展 ...

  3. Centos 7 防火墙 firewalld 简单使用说明

    1.firewalld简介 firewalld是centos7的一大特性,最大的好处有两个:支持动态更新,不用重启服务:第二个就是加入了防火墙的“zone”概念   2.firewalld命令行界面管 ...

  4. Fabric1.4源码解析: 链码容器启动过程

    想写点东西记录一下最近看的一些Fabric源码,本文使用的是fabric1.4的版本,所以对于其他版本的fabric,内容可能会有所不同. 本文想针对Fabric中链码容器的启动过程进行源码的解析.这 ...

  5. devexpress 给GridView添加行号

    先找到 此时间gridView1_CustomDrawRowIndicator private void gridView1_CustomDrawRowIndicator(object sender, ...

  6. SQL SERVER 之快照复制,事务复制,合并复制

    一.环境要求及说明 1.快照复制和事务复制是单向的(2005及以后的版本中加入了订阅端可更新的事务复制). 2.合并复制是双向的. 3.快照复制对表结构没有要求. 4.事务复制要求表有主键. 5.合并 ...

  7. Oracle数据库视图的创建以及使用

    创建视图语句: CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW view_name [(alias[, alias]...)] AS subquery [WITH C ...

  8. Docker 安装mysql容器数据卷挂载到宿主机

    环境 Centos:7 Docker: 17.05-ce Mysql: 5.7 1. Mysql外部数据和配置文件路径 msyql配置文件路径:/etc/mysql mysql数据卷路径:/var/l ...

  9. 【java自定义注解1】java自定义注解-属性

    关于自定义注解,以前项目种应用的不多,最近看新项目过程中发现了挺多自定义注解相关内容,使用起来比较巧妙,于是 总结了两种方式,记录如下: 第一种:结合反射进行属性注入,代码如下: 1.定义一个注解: ...

  10. Spring 之Aop实现日志记录

    Aop实现见代码,简单demo实现 package com.idcos.automate.config; import com.idcos.automate.dal.auto.dao.dcos.Dco ...