运行平台

    大多数的VR应用都可以在目前多数的PC和手机上运行,基本上一个不太旧的PC或者配置好点的笔记本电脑都可以正常运行Oculus Rift,如果手机的CPU和显卡不错的话也可以有很好的VR体验。对于大众来讲,现有的电脑或者手机再加上VR的眼睛就可以很方便的体验VR,但是对于那种想要体验极致效果的人来讲,估计这次圣诞节礼物清单上就得写上最好的PC、最强大的CPU和显卡了。

    随着VR技术的成熟和普及,VR专业的电脑、手机和游戏主机也开始受到关注,这些专业的VR设备可以展现非常惊人的效果。

    目前,用来开发VR应用的有:各个平台的本地SDK、游戏引擎和开发框架,甚至最新版本的浏览器。

本地SDK

    对于不同的平台会有不同的驱动和链接库,Windows上会是Win32的dll链接库,安卓上会是Java的链接库等等。使用这些SDK可以非常方便的开发应用程序,比如你可以在图形或者游戏性等方面DIY定制。但是大多数开发者会用游戏引擎和开发框架来做VR的应用开发。

游戏引擎和开发框架

    除非你是引擎开发者,否则谁也不会愿意直接用本地SDK来开发应用程序,大多数会用游戏引擎开发,比如Unity3D(第三章会详细介绍)。Unity3D作为中间件,它很好地处理了图形渲染、物理系统、游戏框架以及驱动调用等技术。所以,非常多的VR开发者会使用Unity3D作为他们应用程序的开发工具。

    许多类似的中间件引擎都支持跨平台部署,你只需要编写一次代码,就可以发布在不同平台上,比如PC和手机。这些引擎还拥有一些非常好用的工具,比如等级编辑器和集成开发环境等。

浏览器

    当HTML5技术可以实现在浏览器上运行的应用可以和原生应用性能基本一致时,浏览器的开发人员就开始大力支持VR的开发。不过,支持VR开发这个特性应该会比支持移动端开发这个特性要快很多。

    浏览器支持VR开发会产生两方面影响:第一,这意味着我们可以运用HTML5、WebGL和JavaScript这些技术快速开发VR应用,并且这些应用的跨平台特性非常好。第二,也意味着现有的网站和网页都得提供一个类似超链接的东西,它们会切换到相应的VR页面。

VR视频

    VR视频有它自己另外一套技术,与游戏不同。游戏的图像都是合成的,里面的三维模型、动画、背景等等都是人工建出来的,而VR视频则是拍摄的现实世界内容。VR视频的内容真实感更强,甚至有时候会非常惊人,比如视频中播放的是一个直升飞机飞跃大峡谷的场景,那么观看影片的人就会像真的坐在飞机上一样体验飞行的刺激。当然,VR视频唯一比较局限的就是不能和场景进行交互。

    VR视频拍摄需要多个摄像头(至少两个,如果需要拍摄全景视频,就是360度都可以观看的视频,就需要更多的摄像头)。这个领域的先锋--加州的JauntVR公司,正在尝试着用一组摄像头拍摄第一个全景的VR电影。

    拍摄VR视频目前还处于比较初级的阶段,不过值得庆幸的是有许多公司和研究机构都在致力于发展这项技术。许多VR视频的播放器正在研发之中,它们可以运行在PC或者移动设备上,有的还准备支持跨平台运行。目前开发者面临的一个最大的问题就是没有一个统一的数据格式标准,如果要做视频内容的开发,就得锁定一个硬件供应商,然后使用针对性的技术和软件来制作。

《VR入门系列教程》之4---运行平台的更多相关文章

  1. 《VR入门系列教程》之14---面向大众的Unity3D

    大众化的游戏引擎--Unity3D     并不是所有VR应用都是游戏,然而现在做VR开发的几乎都会用专业游戏引擎来做,因为游戏引擎既满足了一个引擎的要求又可以方便地制作出高品质的VR应用.一个游戏引 ...

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

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

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

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

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

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

  5. 《VR入门系列教程》之2---VR头显

    什么是虚拟现实?     虚拟现实的目标:让人们相信真实地处于一个虚拟世界中.要达到这个目标就得让人们的大脑(负责视觉和运动感知部分)欺骗他们.不同技术合在一起才可以创造这种幻觉,包括:     全立 ...

  6. 《VR入门系列教程》之20---使用Oculus移动端SDK

    使用Oculus移动端SDK     在基于安卓系统的GearVR上开发应用需要用到Oculus的移动端SDK,下面的网址可以下载SDK:http://developer.oculus.com     ...

  7. 《VR入门系列教程》之18---Oculus代码剖析

    代码剖析 原文作者:Tony Parisi     那么,Unity究竟是如何支持Oculus VR运行的?首先,我们来看看Unity场景是如何构建的.在Unity集成开发包中有一个相机预设体,这个预 ...

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

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

  9. 《VR入门系列教程》之9---谷歌纸盒

    谷歌纸盒---基于智能手机的廉价VR眼镜     如果用汽车来做类比,Oculus Rift和GearVR就是特斯拉和兰博基尼,它们物美但是价不廉.要是主机性能不好,那么几百美元的Oculus眼镜就是 ...

随机推荐

  1. Linux精要

    Linux入门精要 Linux历史 1970年: linux元年,起始开发者为 Kenneth Lane Thompson 和 Dernis Ritchie, 现在知道为啥很多计算机是用1970年1月 ...

  2. java设计模式-原型(prototype)

    有时候创建对象是需要耗费很多资源,但是每个对象之间又有大量的重复.我们可以选择在创建好一个对象后,以之作为模板克隆出其他对象,稍作修改,即可用于其他地方. 需要实现Cloneable接口,重写clon ...

  3. 数据管理工具Flux、Redux、Vuex的区别

    目录 为什么要进行数据管理? 怎么有效地进行数据管理? 数据管理工具 1. Flux 2. Redux 3. Vuex 使用数据管理工具的场景 相关资料 主要讲解一下前端为什么需要进行数据管理,有效的 ...

  4. kubernetes实战篇之为默认账户创建镜像拉取密钥

    系列目录 上一节我们分别使用纯文本账户密码和docker的config文件一创建一个kubernetes secret对象,并且把它添加到containers的imagePullSecrets字段用以 ...

  5. PWN菜鸡入门之栈溢出 (2)—— ret2libc与动态链接库的关系

    准备知识引用自https://www.freebuf.com/articles/rookie/182894.html 0×01 利用思路 ret2libc 这种攻击方式主要是针对 动态链接(Dynam ...

  6. 【dockerFile配置jvm 启动参数】dockerFile 参数解释

    最近比较忙,实际也没有用得上.仅仅记录几个链接: Dockerfile reference:https://docs.docker.com/engine/reference/builder/#usag ...

  7. memcached分布式一致性哈希算法

    <span style="font-family: FangSong_GB2312; background-color: rgb(255, 255, 255);">如果 ...

  8. JavaScript 事件(捕获和冒泡 兼容性写法)

    事件    浏览器客户端上客户触发的行为都称为事件 所有的事件都是天生自带的 不需要人为绑定 只需要我们去触发通过obj.事件名=function(){} 我们给元素的事件绑定了一个方法 事件名:on ...

  9. Django框架rest_framework中APIView的as_view()源码解析、认证、权限、频率控制

    在上篇我们对Django原生View源码进行了局部解析:https://www.cnblogs.com/dongxixi/p/11130976.html 在前后端分离项目中前面我们也提到了各种认证需要 ...

  10. zabbix2.4汉化

    zabbix的2.4版本安装完后,这里的语言界面选择没有中文,其实是这个版本把中文的屏蔽了. [root@zabbix-server opt]# vim /var/www/html/include/l ...