关键词: VR / AR / 基础 / 虚拟现实 / 通用计算平台 / Unity3D
VR技术已经在尖端领域成为主流技术。随着各个虚拟现实头显和虚拟现实平台的发布,虚拟现实是越来越受到欢迎。什么是虚拟现实呢?一般来说,VR就电脑模拟的3D环境,使用特别的电子装备,让人真实感受虚拟世界。其目标是在虚拟环境中得到强感官感受。 参考:虚拟现实之父:VR会改变整个社会 每个人对于这个世界都会有不同的想法与想像,但是如何可以实现他们,将你想要的世界带到人们的面前?VR就是一个入口,可以将大家带入你所想进入的地方。你想像中的世界,这是十分令人惊奇与振奋的一件事!
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张图表
3D的 / 沉浸的 / 交互性的
创造了 身临其境 的 沉浸感 和 临场感 和 带入感
关于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引擎,做第二遍动手写代码去官网找开发手册学习是最好的选择(英文的)学习动画系统学习物理系统uGUI2D开发编辑器扩展网络系统导航系统通过项目加强学习的知识 *算法、AI,状态机、提高技巧、编程思想、设计模式前11是搬砖码农,提高技巧、编程思想是合格工程师目标
Unity 引擎学习目录:
引擎基础动画系统2D和UI导航系统粒子系统数据处理网络打包HoloLens(没有设备也可以开发,有模拟器)C++算法和数据结构设计模式项目:C#空间射击,Unity变形金刚
如果真的是第一次接触虚拟现实开发,那么这个世界或许会让你感到十分震撼,不仅仅只是因为你可以制作任何你能想象到的体验。建议从为移动虚拟现实头显开发一个小型网页应用开始,当你积累了一定经验后再开发完整的PC应用。
你可以从中掌握到许多关于虚拟现实开发的基本知识,而这些都是可以应用到PC端开发的,所以你用于开发移动应用的时间是绝对有意义的。另外,市场对虚拟现实应用开发一直都有需求,所以这些经验会给你带来很大的优势。
Unity和Unreal都向开发者提供bluePRint(蓝图)。这些基本的平台和游戏的功能都是完备的,而且还包含了源代码让用户随意使用。你可以对这些blueprint进行修改,并制作发布自己的虚拟现实版本。充分利用好这些blueprint,尤其是你才刚刚开始接触虚拟现实开发。
参考:给虚拟现实开发者的十大贴士
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 TextureExternal Texture in UnityOES_EXTERNAL_TEXTRUE
in AndroidAndroid Rendering PiplelineEnd.
新闻热点
疑难解答