VR原理讲解及开发入门

本文是作者obuil根据多年心得专门为想要入门的VR开发者所写,由52VR网站提供支持。

1. VR沉浸感和交互作用产生的原理:

在之前,我们观看一个虚拟的创造内容是通过平面显示器的,52VR上次发布过一篇文章《一张图让你认识VR》,在其中,你会看到很多10年前的虚拟现实装备,他们基本是平面显示器,或者将产生的画面投影到一个弧形甚至是球形屏幕上;或者在这些屏幕上叠加左右眼分别的图像,从而产生更加立体的效果。

而这类装置往往很大型,也很昂贵。

而近几年发展起来的VR头戴显示器,则达到了更好的使用效果:更好的沉浸感和更便宜的价格,目前一套主流的VR眼镜是不到1万元RMB的。

这种VR眼镜 能够达到更好的沉浸感的原理是什么呢?

我们看到,VR眼镜,主要通过三方面来达到沉浸感的目的:

1)通过凸透镜来放大人眼看到的即时图像范围,现在的VR眼镜大概会产生90-120度范围的图像视野,这样的视野大概和一个良好的三通道环幕投影系统产生的效果差不多,不过VR眼镜要更加贴近人眼一些,人眼被干扰的可能性大大降低。

2)通过头部的陀螺仪,当人转动头部时,陀螺仪能够及时的通知图像生成引擎,及时的更新画面,从而使人感觉到,自己是在看一个环绕的虚拟空间,从而产生360度的三维空间感。

3)左右眼每一时刻看到的图像是不一样的,是两幅区别左右眼位置的不同头像,从而产生很强烈的立体纵深感。

以上三个原因,就是VR眼镜的沉浸特点。

2. 关于沉浸感和交互作用的定义

对于这两个名词的定义,我认为大概可以如此解释:

1)所谓沉浸感

使用户处于一个四维的虚拟世界之内,用户各种感觉器官、特别是视觉器官对虚拟世界发生适应性正向反馈。

就目前的VR眼镜来讲,主要通过两方面来达到沉浸感的目的:

  1. 一是通过经过放大的显示屏技术,能够在用户眼前显示出一个放大的局部虚拟时间景象,目前显示视场角在90-110度左右,在这个显示范围内,主要通过三维引擎技术,产生实时的立体图像。
  2. 二是通过和头部的位姿传感采集的数据配合,让三维引擎响应头部转动方向(和当前头部位置变化),以很高的频率实时改变显示的三维头像,用户头部转动的角度刚好和三维引擎模拟的三维画面视觉一致,让用户觉得放佛是通过一个大窗口 在观察一个虚拟的三维世界。

2)所谓交互作用

用户通过动作、手势、语言等人类自然的方式能够与虚拟世界进行有效的沟通。

通常来讲,用户的双手动作,双脚行走,在虚拟世界中产生用户能够理解的变化,用户就认为该虚拟世界对用户发生了反馈,那么用户的动作和虚拟世界对用户的反馈,组合在一起,就形成一次交互作用

那么主题来了,要达到目前VR眼镜所具有的沉浸互动效果,是需要有一整套软件和内容的配合。

3. 如何生成符合VR要求的虚拟世界

生成一个三维的虚拟世界,自从三维游戏诞生时,就不缺乏工具,基本可以认为,凡是具备三维构建和渲染能力的图形学引擎,都可以生成三维的虚拟图像世界,很多引擎拥有完整的游戏引擎功能,不仅仅限于图像方面,还能够产生声音,模拟物理现象等功能,这些目前还存在于世的引擎包括但不限于:

1)世界上最知名的引擎排名前十,其中包括各大游戏公司出品的引擎

  1. The Dead Engine,美国EA公司重制过的引擎
  2. Avalanche Engine,
  3. Mt Framework引擎,鬼泣游戏大家知道吧?就是这个做的
  4. Anvil引擎,UBsoft的引擎
  5. EGO引擎
  6. 寒霜引擎
  7. CryEngine
  8. IW引擎
  9. 顽皮狗引擎
  10. Unreal Engine

2)还有一堆开放源代码的渲染引擎,有兴趣的同学可以下载下来尝试下

OGRE、Irrlicht、Panda3D、Crystal Space、jME、Blender Game Engine、Reality Factory、The Nebula Device 2、RealmForge、OpenSceneGraph

何谓引擎:

这些引擎都是基于计算机操作系统API和显卡驱动接口构建的,目的是方便上层应用开发人员快速生产内容,在引擎和操作系统之间,其实普遍还有一层中间件,基础图形接口:

在windowsPC和移动操作系统上,是directx基础图像api

在工业领域,在linux、苹果PC和IPhone上,在安卓操作系统上,是一系列OpenGL基础图形接口(移动端为opengl es,是简化的opengl版本)

几乎所有引擎都是基于上述两者或者其中之一进行构建的。

4.最主流的VR开发引擎

上述引擎由于其难易程度,功能完善度,开发成本等原因,在经历了长时间的兴衰过程后,目前最为流行和最适合开发VR内容的三大引擎为:

Unity Unreal Engine CryEngine

在手机游戏爆发的时代,迅速崛起,成为开发游戏最多最为流程的引擎

,其主要特点为:

不开源

上手容易

多平台开发容易

目前的unreal第四代版本大有青出于蓝之势,依然是引擎中的No.!。

其特点简单归纳为:

开放源代码

软件体系完整,不太需要额外插件。

视觉表现和功能都极为强大

上手入门不易

最牛逼的孤岛引擎了,其代表作在效果上,大部分人认为比unreal更强,其特点概括为:

开放源代码

编辑器强大

入门难

三多:插件多、资源多、文档多 文档不少 文档并不多

上述引擎比较,大家可以看我的另一篇文章:《目前VR游戏开发,使用Unity还是Unreal4?

上述三种引擎对VR的支持力度如何?

上述三大引擎在不同程度上,已经内置对VR的支持

Unity Unreal Engine CryEngine
内置 SteamVR插件
内置OSVR插件

内置SteamVR插件

内置OSVR插件

内置OSVR插件

有了上述引擎提供的SteamVR和OSVR插件原生支持,开发者无需担忧跟不上VR眼镜中功能API和设备本身的发展变化,可利用插件打造兼容不同设备的虚拟现实体验。

SteamVR插件是什么?

SteamVR 是Value公司的一个VR 游戏平台,其开源SDK 是,OpenVR,OpenVR SDK是由原本的SteamWorks SDK更新而来,其包含对几大VR设备的支持和封装,这样开发者可以不用面对具体的设备接口,而只需要面对 OpenVR SDk的统一接口了,该SDK 包含了对HTC VIVE和Oculus Rift开发者版本的支持,也包含Steam VR的控制器及定位设备的支持。相关的API是以C++实作,已有C++经验的开发人员可以直接 学习。

OSVR插件是什么

雷蛇及其合作伙伴联合创建了一个虚拟现实开放式平台:OSVR开源虚拟现实系统(Open-Source Virtual Reality)。OSVR旨在支持软件插件(Unity 3D、虚幻引擎4和英雄引擎(HeroEngine)、输入硬件(Sixsense和Leap Motion等)及其他虚拟现实的设备,包括Oculus rift DK2和Vrvana Totem。

有了上述主流引擎和专用VR插件,那么你就可以开张了,来到52VR.COM一起来学习这几个主流制作工具吧,我们会继续推出下面的链接:

1) Unity VR开发入门

2) Unreal Engine VR开发入门

3) CryEngine VR开发入门

时间: 2024-11-18 10:15:43

VR原理讲解及开发入门的相关文章

OAuth的机制原理讲解及开发流程 (转)

本想前段时间就把自己通过QQ OAuth1.0.OAuth2.0协议进行验证而实现QQ登录的心得及Demo实例分享给大家,可一直很忙,今天抽点时间说下OAuth1.0协议原理,及讲解下QQ对于Oauth1.0的认证开发.闲话多说了点,下面直接进入主题. 1.OAuth的简述 OAuth(Open Authorization,开放授权)是为用户资源的授权定义了一个安全.开放及简单的标准,第三方无需知道用户的账号及密码,就可获取到用户的授权信息,并且这是安全的.(我喜欢简单明了,这里没看懂,没关系,

OAuth的机制原理讲解及开发流程

原文地址:http://kb.cnblogs.com/page/189153/ 本想前段时间就把自己通过QQ OAuth1.0.OAuth2.0协议进行验证而实现QQ登录的心得及Demo实例分享给大家,可一直很忙,今天抽点时间说下OAuth1.0协议原理,及讲解下QQ对于Oauth1.0的认证开发.闲话多说了点,下面直接进入主题. 1.OAuth的简述 OAuth(Open Authorization,开放授权)是为用户资源的授权定义了一个安全.开放及简单的标准,第三方无需知道用户的账号及密码,

OAuth的机制原理讲解及开发流程(转)

1.OAuth的简述 OAuth(Open Authorization,开放授权)是为用户资源的授权定义了一个安全.开放及简单的标准,第三方无需知道用户的账号及密码,就可获取到用户的授权信息,并且这是安全的.(我喜欢简单明了,这里没看懂,没关系,接着往下面看) 2.OAuth的原理 (流程图) 我在图上分了四个步骤,下面是四步的讲解: 第一步:用户访问第三方网站,比如:就是你需要使用QQ进行登录的网站: 第二步:你点击QQ登录后,第三方网站将会连接并进行请求,比如:你点击登录后,第三方网站会跳转

微信公众平台开发入门教程

在这篇微信公众平台开发教程中,我们假定你已经有了PHP语言程序.MySQL数据库.计算机网络通讯.及HTTP/XML/CSS/JS等基础. 我们将使用微信公众账号方倍工作室作为讲解的例子,二维码见底部. 本系列教程将引导你完成如下任务: 创建新浪云计算平台应用 启用微信公众平台开发模式 基础接口消息及事件 微信公众平台PHP SDK 微信公众平台开发模式原理 开发天气预报功能 第一章 申请服务器资源 创建新浪云计算应用 申请账号 我们使用SAE新浪云计算平台作为服务器资源,并且申请PHP环境+M

Nginx模块开发入门(转)

前言 Nginx是当前最流行的HTTP Server之一,根据W3Techs的统计,目前世界排名(根据Alexa)前100万的网站中,Nginx的占有率为6.8%.与Apache相比,Nginx在高并发情况下具有巨大的性能优势. Nginx属于典型的微内核设计,其内核非常简洁和优雅,同时具有非常高的可扩展性.Nginx最初仅仅主要被用于做反向代理,后来随着HTTP核心的成熟和各种HTTP扩展模块的丰富,Nginx越来越多被用来取代Apache而单独承担HTTP Server的责任,例如目前淘宝内

Nginx模块开发入门

前言 Nginx是当前最流行的HTTP Server之一,根据W3Techs的统计,目前世界排名(根据Alexa)前100万的网站中,Nginx的占有率为6.8%.与Apache相比,Nginx在高并发情况下具有巨大的性能优势. Nginx属于典型的微内核设计,其内核非常简洁和优雅,同时具有非常高的可扩展性.Nginx最初仅仅主要被用于做反向代理,后来随着HTTP核心的成熟和各种HTTP扩展模块的丰富,Nginx越来越多被用来取代Apache而单独承担HTTP Server的责任,例如目前淘宝内

Nginx模块开发入门(转)

前言 Nginx是当前最流行的HTTP Server之一,根据W3Techs的统计,目前世界排名(根据Alexa)前100万的网站中,Nginx的占有率为6.8%.与Apache相比,Nginx在高并发情况下具有巨大的性能优势. Nginx属于典型的微内核设计,其内核非常简洁和优雅,同时具有非常高的可扩展性.Nginx最初仅仅主要被用于做反向代理,后来随着HTTP核心的成熟和各种HTTP扩展模块的丰富,Nginx越来越多被用来取代Apache而单独承担HTTP Server的责任,例如目前淘宝内

[转] Nginx模块开发入门

前言 Nginx是当前最流行的HTTP Server之一,根据W3Techs的统计,目前世界排名(根据Alexa)前100万的网站中,Nginx的占有率为6.8%.与Apache相比,Nginx在高并发情况下具有巨大的性能优势. Nginx属于典型的微内核设计,其内核非常简洁和优雅,同时具有非常高的可扩展性.Nginx最初仅仅主要被用于做反向代理,后来随着HTTP核 心的成熟和各种HTTP扩展模块的丰富,Nginx越来越多被用来取代Apache而单独承担HTTP Server的责任,例如目前淘宝

Arduino可穿戴开发入门教程(大学霸内部资料)

Arduino可穿戴开发入门教程(大学霸内部资料) 试读下载地址:链接:http://pan.baidu.com/s/1mg9To28 密码:z5v8 介绍:Arduino可穿戴开发入门教程(大学霸内部资料)为国内第一本可穿戴技术实施教程.本教程以最流行的开源硬件Arduino讲解可穿戴产品的构建方法.全教程覆盖Arduino Lily硬件.软件开发和项目构建等内容.最后,还讲解三个项目:番茄闹钟.二进制时钟.P#OV手*&环. 目  录 第1章  LilyPad Arduino概览 1 1.1