VR科普贴:看看这些干货,教你自学VR技术

2016年03月09日 14:27 0 点赞 0 评论 更新于 2025-11-21 19:54

近期总有朋友询问该如何学习VR相关的知识,我花了些时间,结合自身经验,并参考国外的一些教程推荐(主要参考Tee Jia Hen的总结),将相关知识做了以下整理,希望能给大家带来一些帮助。总体来说,VR技术知识的学习大概涉及三部分。

原生VR app开发

开发VR app或者游戏能够让VR内容更加丰富,刺激整个VR大环境的发展,进而吸引更多用户接触VR,使整个VR生态更加繁荣。你开发的应用可以安装在MAC、PC、Play Station、安卓或iOS等设备上。

这是VR的一个重要领域。在开发过程中,你需要深入了解VR的UI/UX设计,确保用户能够以正确的方式充分享受VR带来的益处。同时,你需要学习一种3D引擎,Unity是一个非常适合入门的引擎。掌握Unity需要学习C#和JavaScript语言。

编程知识学习

  • 新手推荐书籍:如果你是编程新手,推荐阅读《JavaScript DOM编程艺术》和《Eloquent JavaScript》这两本书,它们能够帮助你建立扎实的编程基础。
  • 有经验者推荐书籍:如果你已经有一定的编程经验,可以直接阅读《JavaScript语言精粹》,深入学习JavaScript的核心知识。
  • Unity入门教程:对于Unity的学习,可以参考Unity3d官网给出的Roll - a - ball教程,这是一个不错的小教程,能让你初步熟悉Unity的使用。完成该教程后,你可以直接去Oculus官网的Developer Center学习相关文档和SDK。

学习方法建议

个人认为,学习Unity的最佳方式是自己尝试开发一个简单的小游戏。在开发过程中遇到问题时,可以通过Google搜索解决方案,或者到Stackoverflow上寻求帮助。此外,与VR开发者论坛的朋友们多交流,互相帮助,也是提高开发能力的有效途径。

VR输入设备开发

前面提到的教程主要围绕VR的输出设备(即VR头显)。如果你对VR输入设备感兴趣,想开发VR的UI/UX,Leap Motion是一个不错的选择(当然还有Oculus touch或HTC Vive),你可以去leapmotion官方网站查看开发者文档。

数学知识补充

除了基础编程知识,建议补充一些数学知识,推荐阅读《Essential Mathematics for Games and Interactive Application:A Programmer’s Guide,Second Edition》。

VR电影的录制

VR电影是VR的另一个重要领域,其录制方法是使用特殊的全景摄像机来录制360度视角的影片。

摄影设备

拍摄全景视频首先需要一套VR摄影设备。目前有很多解决方案,有兴趣的同学可以通过Google搜索「VR camera rig」获取相关信息。光场相机将会是这个领域的颠覆者,其中360Heros全景相机架是一个不错的选择。

视频编辑

如果只是想给朋友分享一段普通的VR视频,原生的VR视频即可。但如果要拍摄电影,则需要对视频进行编辑,此时普通的视频编辑器无法满足需求,必须使用VR视频编辑器,例如「SpliceVR Editor」。

VR web开发

毋庸置疑,原生VR应用、游戏以及VR视频会最先普及,但最终,VR技术肯定会走向web。开发者们应该还记得「一次编写,处处运行」这句古老的名言,网页是实现这一承诺的最大可能。相比于开发仅能在单一平台或VR头显上运行的原生应用程序,采用web来打造VR体验,能够让用户通过浏览器轻松访问。Google和Mozilla携手致力于WebVR的建设,我们可以预见3D版本的万维网即将到来。

随着用户对原生VR应用需求的不断增长,他们也期待开发者能够创造出VR的web应用。VR web体验将带给用户类似浏览Facebook或YouTube的感受,用户在web上可以将视频切换到「VR模式」。与VR电影不同的是,用户可以在VR环境中进行VR购物、VR约会或VR在线课程的学习。

开发步骤

  • 学习three.js:首先,你需要学习three.js。它是一款运行在浏览器中的3D引擎,你可以使用它创建各种3D场景,包括摄影机、光影、材质等各种对象。它是由JavaScript编写的WebGL第三方库,你可以去threejs.org官网学习。
  • 参考项目实践:参考Github上的borismus/webvr - boilerplate项目,试着实现一个简单的VR网站。在测试时,建议使用Chromium或者Mozilla nightly,并参考webvr.info
  • 加入3D模型及物理信息系统:接下来,尝试向你的场景中加入3D模型,并改变其位置和旋转角度,threejs.org的examples中有丰富的小例子可供参考。如果你想向场景中加入一些物理信息系统,可以参考Github中的Hello - Cannon.js!项目。

看到这里,你是否对VR技术的入门知识有了一个大概的了解呢?其实VR开发与传统的Native和Web开发并没有太大的区别。希望这篇文章能给喜欢VR的同学们带来一些帮助。

作者信息

洞悉

洞悉

共发布了 3994 篇文章