转载

专访白鹭时代马鉴:WebGL 3D手游时代降临

12月5日,在 2015HTML5移动生态大会 上,白鹭时代联合创始人马鉴发布了 Egret 3D 手机页游游戏引擎。在会后,马鉴接受了InfoQ记者的采访,谈到了WebGL游戏化是否成熟以及WebVR发展的问题。

Egret 3D是自今年5月份发布Egret 2.0以来颠覆性的重大升级,基于移动游览器的WebGL 3D图像API,以及实验性的支持了WebVR API,相关的开发工具也获得同步更新。据马鉴在大会上介绍,Egret 3D的相关特性有:

  • 语法结构与Egret 2D类似,封装了WebGL API,使其更加简单易用。
  • 支持3D模型封装,并有自己的3Dmax输出插件,方便输出对应资源。
  • 包体仅200K,相比Three.js减少35%。
  • 支持多种渲染方式以及后期特效。
  • 内置WebVR SDK,只需调节参数即可实现VR效果、设备支持。
  • 开发工具的更新支持React组件的可视化编程,导出JSX。

另外在大会上马鉴还发布了青雀移动解决方案,使用云端积木式的开发方式搭建移动Web应用和HTML5宣传页面。

以下是会后InfoQ记者对马鉴的采访整理。

InfoQ:目前WebGL在各移动平台的发展情况如何,是否已经足够成熟,它在不同平台上的差异大吗?

马鉴:目前WebGL在移动平台上的覆盖率超过84.5%,WebGL标准在2011年发布,我们看到现在几乎所有的主流浏览器厂商都支持了WebGL,包括苹果、谷歌、微软等等,目前市面上已经出现了一些基于WebGL的3D绘图库,也有越来越多的人来使用它们。

各个移动平台也基本早就支持了WebGL,不过在以前受限于移动设备的性能,所以没有人用它来做很多东西,但现在我们的主流的移动设备差不多都 有独立的GPU处理单元,所以这个性能限制基本不存在了。至于平台差异,因为大家都按照WebGL标准去实现API,所以基本上没什么差异。

InfoQ:类似Egret 3D这样基于WebGL的游戏引擎的性能瓶颈在哪里?

马鉴:我们所遇到的主要的瓶颈在内存和绘图IO上,这个和目前3D手机游戏引擎的瓶颈应该差不多,我们也做了一些相关的优化。

InfoQ:Egret 3D游戏和原生3D手游在哪些方面还有差距?原因出在哪里?

马鉴:WebGL API本身只是对OpenGL ES 2.0的一个封装,因此用WebGL做手游和原生手游其实并没有很大的差别,不过因为WebGL的API是固定的,在底层优化方面不如原生,另外JS的渲染和计算速度也比不上原生引擎,不过目前来看,因为移动设备性能提升,这些差距是越来越小的。

InfoQ:Egret使用TypeScript开发,请问您对这门语言看法如何?是否提高了生产力和效率?

马鉴:我们在第一天开发Egret的时候就用了TypeScript,在此之前我们用 ActionScript做过一些大型项目,而在JavaScript上开发大型项目却是一个顽疾,TypeScript的确是极大的提升了生产力和团队协作的能力,我们团队一直用到现在也非常喜欢。

InfoQ:WebVR标准好像还在草案阶段,目前实用性如何?

马鉴:WebVR目前是在草案阶段,但是Google的Chrome已经提供了一套完整的API可以使用 了,我们算是WebVR的早期利用者,目前我们和Google的相关开发者有过接触,密切跟踪他们的研发进展和未来的更新,另外我们也正在接洽W3C中国,希望能参与到标准的制定过程中来,给标准提一些建议。

InfoQ:我看到Egret开发工具支持React可视化编程,不知道是怎么做到这一点的?

马鉴:因为我们自己有一套UI组件,并且支持它的可视化开发,我们这套UI组件是用XML来描述的,这个其实和React里面的JSX类似,于是我们就做了一个EXML到JSX的一个转换,通过编写我们的UI组件,在IDE里可以导出React的JSX出来, 算是间接的支持了React的可视化编程。

当然,目前前端界对可视化编程存在争议,我们做这一条的出发点是我们的Lark框架搬到云端后,想降低开发门槛,完全通过拖拽组件就可以生成代码,添加React支持可以让我们的这套工具使用范围更广泛,可以和其它的基于React的开发工作流无缝的结合起来,这是我们的一个初衷。

正文到此结束
Loading...