WebGL学习笔记01

WebGL分享 by 达达 at 2015-01-21

最近两周在学习WebGL,今天回头看了一下学习的路径和做的实验,感觉有必要整理一下学习笔记对知识做一下梳理了,也可以帮到正在学习WebGL的朋友们。

第一篇笔记我先从学习的动机和技术选型的角度分析学习WebGL这件事情。

WebGL标准是在去年年底正式发布的,之前虽然有看到一些demo,但是没有特别关注,而现在我对WebGL的看法是这样的:

  1. 从个人角度出发,学习和掌握新知识本身就是一件有趣的事情。学生时代就曾经尝试做客户端游戏开发,但是学习路径曲折,学了DirectX 2D和GDI+,之后就没有机会继续深入学习OpenGL或者DirectX了,工作以后接触了一些Flash的开发,但是对图形引擎的底层和算法一直都觉得高不可攀,WebGL的出现,再起燃起我学习的动力。

  2. 从OpenGL学习者角度出发,它的学习门槛很低,开始学习WebGL之前,我是先看了几天OpenGL ES的书,后来偶然拿到一本WebGL的电子书,感觉两者的入门门槛相差太多了,WebGL不需要管底层的窗体环境依赖,不需要管编译链接问题,只要有一个文本编辑器也一个浏览器就可以开始做试验了。它的这个特性,可以在学习过程中排除掉很多干扰因素直入主题。

  3. 从公司经营者的角度出发,WebGL给了我们这种传统页游开发商一个进入更高阶领域开发的机会,先不论WebGL的普及度和兼容度是否能快速达到商业项目应用的级别,单从技术积累角度讲,掌握WebGL开发技术这件事,对公司就是很有价值的,因为WebGL其实就是OpenGL ES的Web版,掌握了一样就同时掌握了另一样,即便不把相关知识用在Web游戏领域而是投入到手游领域,也是有价值的。而一旦WebGL普及开来,在这些技术投入的经验积累就跟着升值了。

  4. 从团队管理者角度出发,我看好Web模式的开发流程,虽然我们自己没有完整的重度手游开发经验,但是至少也合作过也看过其他团队开发模式,传统手游的开发模式更接近端游模式,只有程序员能第一时间拿到新版本,提交测试需要长时间的编译和内部版本更新。相比较而言,手游的这种开发模式落后于页游,页游有更平顺的开发测试流程,全部项目成员只要通过不同的网址就可以访问到不同的版本进行测试和调试。我们可以假想,如果我的游戏是基于WebGL开发的,那就可以获得Web游戏的部署能力,然后通过移动端的一层JS绑定提供兼容适配,就可以把开发好的程序移植到手机上。所以WebGL以带来先进生产力。

以上都是对WebGL正面的看法,但是客观的讲,从学习WebGL到实际用到项目中,还有很多的知识要学习,WebGL只能完成图形渲染,在图形引擎方面,需要自己做资源管理,做批量渲染,做字体渲染,做动画机制等,进一步还需要结合物理引擎,再进一步还需要搭建一套开发环境,才能把整个开发流程串联起来,WebGL其实只是其中的一个小环节而已。

所以我们目前还是比较务实的在尝试用Unity3D开发手机游戏,因为它的工具链完整,入门门槛也很低。但是使用Unity3D跟学习WebGL是不冲突的,学习WebGL之后,Unity3D中的很多概念,比如DrawCall、批量渲染、材质、Shader等等,都会有更直接的理解。

因为我们团队擅长的是2D游戏,所以我在学习WebGL的时候给自己的学习目标就是应用到2D领域,这样可以减少学习内容量,并且可以快速实践。

所以接下去的学习笔记,我都会偏重于2D方面的应用。