什么是虚拟现实?

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

    Task description A non-empty zero-indexed array A consisting of N integers is given. Array A represe ...

  2. C语言实现常用数据结构——链表

    #include<stdio.h> #include<stdlib.h> typedef struct Node { int data; struct Node *next; ...

  3. 深度强化学习day01初探强化学习

    深度强化学习 基本概念 强化学习 强化学习(Reinforcement Learning)是机器学习的一个重要的分支,主要用来解决连续决策的问题.强化学习可以在复杂的.不确定的环境中学习如何实现我们设 ...

  4. DOM模型-属性操作

    HTML 元素包括标签名和若干个键值对,这个键值对就称为"属性"(attribute)."属性"本身是一个对象(Attr对象),但是实际上,这个对象极少使用.一 ...

  5. Django中信号signals简单使用

    在平时的开发过程中,我们会遇到一些特殊的应用场景,如果你想要在执行某种操作之前或者之后你能够得到通知,并对其进行一些你想要的操作时,你就可以用Django中的信号(signals).Django 提供 ...

  6. ASP.NET Core[源码分析篇] - 认证

    追本溯源,从使用开始 首先看一下我们的通常是如何使用微软自带的认证,一般在Startup里面配置我们所需的依赖认证服务,这里通过JWT的认证方式讲解 public void ConfigureServ ...

  7. 【转】JDK 内存参数含义

    Eclipse崩溃,错误提示: MyEclipse has detected that less than 5% of the 64MB of Perm  Gen (Non-heap memory) ...

  8. (1)Linux文件系统的目录组成

    记忆秘诀:BBDEH OPRLM TLSUV 宝贝的恩惠 欧派入联盟 偷了suv,19   目录 英文释义 简写 详解 1 /   根目录 整个文件系统的唯一根目录 2 /bin Binary 普通命 ...

  9. CentOS 7 时区设置 timedatectl

    [root@testandy ~]# timedatectl --help timedatectl [OPTIONS...] COMMAND ... Query or change system ti ...

  10. JavaWeb知识点