你不知道的JavaScript——VR

时间:2021-03-30 14:43:48

一切可以用 JavaScript 编写的程序,最终都会使用 JavaScript 编写

——Atwood 2007

 

就在前几天“JavaScript是世界上最好的语言”这句话火了,PHP的地位遭受了前所未有的挑战。JavaScript到底有何神通,能登上世界上最好的语言的宝座?

 

JavaScript是诞生于1995年的一种直译式脚本语言,原名Mocha。JavaScript是一种动态类型、弱类型、基于原型的语言,内置支持类型。JavaScript具备简单灵活和跨平台的优势,会成为解决大部分IT问题的优选方案。著名程序员 Jeff Atwood 在2007年发布了著名的 Atwood's Law:“Any application that can be written in JavaScript, will eventually be written in JavaScript. (一切可以用 JavaScript 编写的程序,最终都会使用 JavaScript 编写)”。就像世界上大多数人都是白种人一样,GitHub上用JavaScript写的代码也占据了大多数,JavaScript的开放性和简洁性功不可没。

 

VR和WebVR

2016年被誉为“中国VR元年”。所谓VR,就是一种多源信息融合的、交互式的三维动态视景和实体行为的系统仿真,能使用户沉浸到虚拟的环境中。

 

WebVR是一项结合了VR和Web的技术,让人们可以直接利用JavaScript与WebGL构建VR应用。而Chrome与设备位置(转身)和动作信息(眼球跟踪)等传感器的结合就是WebVR迈出的一大步。目前国外常见的用JavaScript编写的3D游戏引擎有Three.js,而FaceBook今年新推出的React VR更是大大降低了JavaScript程序员进军VR的门槛。

 

尽管目前VR领域仍然是Unity-3d的时代,VR程序员都是写C#的,但JavaScript征服VR世界只是一个时间问题。


什么是Egret Engine 3D

上文介绍的几个用JavaScript编写的VR游戏引擎都是舶来品,其实国内也有优秀的游戏引擎支持JavaScript开发者进军VR领域——最著名的当属白鹭时代研发的Egret Engine 3D。

 

Egret Engine 3D包含了白鹭时代研发的遵循HTML5标准的2D引擎及全新打造的3D引擎,不仅妥善解决了HTML5性能问题及碎片化问题,还灵活地满足开发者开发2D、3D乃至VR游戏的需求,更有着极强的跨平台运行能力。目前已经占据了国内70%以上的市场份额。

 你不知道的JavaScript——VR

如何用Egret Engine 3D开发WebVR

Egret Engine 3D开发WebVR的官方教程很详尽,而用户自发的教程和demo更丰富多彩,我只谈几条注意事项:

一、前期准备工作:

1、一部装有Chrome浏览器的Android手机

你不知道的JavaScript——VR

2、Google CardBroad,这个不一定要花一顿午餐的钱去买,擅长DIY的技术宅剪碎一个纸箱折一个就好

3、Egret Wing,理论上WebStorm和Sublime等一切JavaScript IDE都可以,不过我建议用官方推荐的

4、WebVR标准库和Egret3D VRController

二、3D模型和贴图

1、Egret Engine 3D支持一切3D Max支持的模型

2、目前Egret暂停了3D Max插件导入,模型需要用Unity插件导入

3、官方工具暂时不支持3D骨骼,是个小小的遗憾

三、常见bug

1、Egret Engine 3D引擎造VR软件太容易,3D画面的代码把View3D改成VRView3D就成了VR画面,然后加上设备位置和眼球跟踪就是VR游戏。我要在这里支出一个可能出现的bug,View3D改成VRView3D有时会报错,只要把_super.call()方法放在构造函数最下边就可以解决。

2、PC上的浏览器看VRView3D效果帧频刷新明显比View3D要快许多是正常现象,只有在PC上的浏览器上显得刷新快,才能在VR设备正常刷新。

 

Egret还能为你的VR游戏做什么

Egret Open Platform就像UMeng和Bugly一样,提供云服务、Crash分析、数据统计和一站式接入等服务,打通了JavaScript开发者与渠道商之间的桥梁。

 

HTML5开发者服务联盟(以下简称“HDSA”)是由白鹭时代联合小米MIUI等各领域顶尖企业共同创建的服务平台。HDSA致力于为JavaScript开发者提供办公场地、培训教育、媒体、广告等技术之外的生态系统,为JavaScript开发者从开发到上线盈利提供一站式解决方案。

 

Erget布道师徐聪,不但能帮开发者解决技术问题,也能协助开发者把VR游戏投放到公众号和小程序等微信产品上,还经常向有创意的开发者送礼物,他一个人就是整个Egret生态系统的一个重要组成部分。