您的位置:首页 > 其它

# 初步认识 VR / AR

2017-02-06 13:55 211 查看
关键词: VR / AR / 基础 / 虚拟现实 / 通用计算平台 / Unity3D

VR技术已经在尖端领域成为主流技术。随着各个虚拟现实头显和虚拟现实平台的发布,虚拟现实是越来越受到欢迎。什么是虚拟现实呢?一般来说,VR就电脑模拟的3D环境,使用特别的电子装备,让人真实感受虚拟世界。其目标是在虚拟环境中得到强感官感受。

参考:虚拟现实之父:VR会改变整个社会

每个人对于这个世界都会有不同的想法与想像,但是如何可以实现他们,将你想要的世界带到人们的面前?VR就是一个入口,可以将大家带入你所想进入的地方。你想像中的世界,这是十分令人惊奇与振奋的一件事!

1.什么是 VR / AR #

VR: Virtual Reality 虚拟现实,利用电脑设备模拟出一个虚拟的三维空间,再运用沉浸式头戴设备,为使用者提供视觉,听觉,触觉反馈。让使用者身临其境。比如 Oculus Rift(facebook收购), Htc Vive。都是头戴设备,有操作手柄。

AR: Augmented Reality 增强现实,利用电脑技术将虚拟信息投射或叠加到现实。如google glass,在眼镜前方悬置一个摄像头和一个电脑处理器装置,通过控制摄像头拍照一个大厦,上传数据后可以得到大厦相关信息。

今天消费型VR技术涉及到可穿戴的头盔,用于浏览立体的3D场景。转你的头,你就可以查看四周,使用手柄或是运动传感器就可移动。你置身于身临其境的环境中,就好像你真实在存在于一个虚拟世界中。

VR让用户置身于一个想象出来或者重新复制的世界(如游戏、电影或航班模拟),抑或是模拟真实的世界(如观看体育直播)。VR领域主要的硬件厂商有Oculus、索尼(PlayStation VR)、HTC(Vive)和三星(Gear VR)。

AR是把数字想象世界加在真实世界之上,主要硬件包括微软(HoloLens)、谷歌(Google Glass)和Magic Leap。

区分VR和AR的一个简单的方法是:VR需要用一个不透明的头戴设备完成虚拟世界里的沉浸体验,而AR需要清晰的头戴设备看清真实世界和重叠在上面的信息和图像。

从目前的观察来看,AR比较适合服务企业级用户,而VR同时适用于消费者和企业用户。有些情况下,两者还会出现重叠市场。例如,目前大多数游戏基于VR研发,但微软也用HoloLens重新创作了《我的世界》这样的游戏。

另外,VR和AR均通过头部和手势操控。这种基于手势的操控非常直观,相信会给计算生态系统带来新的变化。

VR/AR最有可能率先实现应用的九大领域:视频游戏、事件直播、视频娱乐、医疗保健、房地产、零售、教育、工程和军事。其中,在VR/AR应用方面,视频游戏将是今年的核心领域。

参考:只能玩游戏?虚拟现实能做的其实还有很多



从目前来看, VR成功的可能性要高于AR,这主要得益于VR技术的进步,已经厂商和合作伙伴生态系统的初步形成。目前,VR和AR的技术均有待进一步提高,但AR面临的挑战更严峻,包括屏幕技术、实时处理和实时物理环境的校准等。但同时,一旦AR技术成熟,我们就会看到更多的企业应用案例,尤其是考虑到AR允许人们看到实时的物理环境,而这是VR所做不到的。

从长期角度讲,VR/AR产品最终将变得像太阳镜一样轻便。届时,可以把多个设备整合成一款产品,从而取代当前的手机和PC。

参考:高盛VR与AR报告:下一个通用计算平台(精华版)

VR可能给各行各业带来什么影响?

普及较慢,但潜力巨大(随着科技进步,零售价下降,以及出现全新的企业和个人应用市场,VR有望孵化成数十亿美金的产业,并且可能和PC一样具有划时代的意义)

市场规模取决于接纳程度

从游戏到零售的九个领域,其中视频游戏占比最大,但从医疗到房地产的各行各业都可能受到冲击

头戴式VR设备价格预计将下降

VR将是下一个计算平台,和由台式机向移动转变一样,将是突破性的,2016年是上半年我们将看到VR史上最大的进步

参考:关于VR和AR的6张图表

2. VR 的本质 #

3D的 / 沉浸的 / 交互性的

创造了 身临其境 的 沉浸感 和 临场感 和 带入感

3.关于学习 Unity3D 的思路 #

关于VR 开发,通常说的VR开发是支持Oculus Rift设备的应用开发,类似苹果手机下应用开发。

以Oculus Rift APP开发为例,与一般3D游戏开发差别不大。

Unity + VR SDK

直接使用Unity,导入专门的Oculus SDK,使用VR视角就可以了。Oculus Rift有一套开发者指南,主要是一些规则,避免用户头晕 恶心。因为开发者需要不断的带着设备调试,一般开发的时候就会经历不断的头晕 恶心。

WebGL + Three.js + WebVR

WebGL:开发Web 3D图形的工具。将JavaScript和OpenGL ES 2.0(3D图形规范)结合,JavaScript实现WEB交互式三维动画制作,OpenGL渲染。

Three.js:前端js框架,提供了很多3D显示功能,一个运行在浏览器中的3D引擎。

WebVR:支持HTML端VR体验的浏览器。

http://madebyevan.com/webgl-water/

如果要实现沉浸式体验,同样需要类似 Oculus Rift头戴设备输出和输入进行交互。

Unity3D 用于游戏开发,也可以用于VR/AR的内容开发。和Unreal引擎都有各自的优缺点,而两者都有可用的蓝图和源代码,让开发者可以随意进行修改调整,并根据自己的意愿选择特定的引擎。而影响你选择某个引擎的因素之一是编程语言。Unity支持的是C#语言,而Unreal支持的则是C++,所以如果你只会其中一种语言的话,那么你的选择就很明显了。

整理一下关于 Unity 学习路径和方法。

C# + Unity引擎

有了Java的基础就好办,C#与Java的语法近乎相同(面向对象),花一天时间了解一下C#的特性即可直接开始上手正式学习入门Unity了,可在做项目的过程和后期查漏补缺中进一步巩固C#的基础

找个Demo跟着做一遍项目(不写代码熟悉操作过程),即可入门Unity引擎,做第二遍动手写代码

去官网找开发手册学习是最好的选择(英文的)

学习动画系统

学习物理系统

uGUI

2D开发

编辑器扩展

网络系统

导航系统

通过项目加强学习的知识 *

算法、AI,状态机、提高技巧、编程思想、设计模式

前11是搬砖码农,提高技巧、编程思想是合格工程师目标

Unity 引擎学习目录:

引擎基础

动画系统

2D和UI

导航系统

粒子系统

数据处理

网络

打包

HoloLens(没有设备也可以开发,有模拟器)

C++

算法和数据结构

设计模式

项目:C#空间射击,Unity变形金刚

如果真的是第一次接触虚拟现实开发,那么这个世界或许会让你感到十分震撼,不仅仅只是因为你可以制作任何你能想象到的体验。建议从为移动虚拟现实头显开发一个小型网页应用开始,当你积累了一定经验后再开发完整的PC应用。

你可以从中掌握到许多关于虚拟现实开发的基本知识,而这些都是可以应用到PC端开发的,所以你用于开发移动应用的时间是绝对有意义的。另外,市场对虚拟现实应用开发一直都有需求,所以这些经验会给你带来很大的优势。

Unity和Unreal都向开发者提供blueprint(蓝图)。这些基本的平台和游戏的功能都是完备的,而且还包含了源代码让用户随意使用。你可以对这些blueprint进行修改,并制作发布自己的虚拟现实版本。充分利用好这些blueprint,尤其是你才刚刚开始接触虚拟现实开发。

参考:给虚拟现实开发者的十大贴士

4. 关于 VR 播放器 #

VR播放器,就是360度全景视频播放器,虽然VR代表的内容远远不止这些。

VR播放器应该怎么做?现在的思路主要有 2 类:

一类在播放器上做开发,另一类在现有游戏引擎上开发比如unity;播放器上开发,需要了解Opengl (移动端Opengles,web端需要webGL),原理就是用这些Opengl做出来一个球体,然后在球体里面渲染视频。这个需要比较深厚的编程功底。

另一类在unity上开发,用Unity做的难点就是播放器,unity自带的播放器很挫,支持格式很少,推荐使用EasyMovieTexture作为播放器,支持iOS和Android;这个播放器可以支持在GameObject表面播放视频,做全景播放器就很Easy了。

VR 开发如何入手

做一个 Android MediaPlayer

做一个 Unity3D 场景

将 Surface 赋值给 Texture2D

编译看效果

更多舞台效果

Unity 中的贴图,细节:

Texture2D/OpenGL ES Texture

External Texture in Unity

OES_EXTERNAL_TEXTRUE
in Android

Android Rendering Pipleline

End.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  虚拟现实