前言

  WebGL1.0标准2011年发布以来,至今天2017年,经过了大约6年。现在多数浏览器最新版本已经能够支持WebGL1.0标准,包括移动端浏览器。贫道喜欢把团队用SolidWorks软件设计的机械零件在个人网站解析出来,工程师之间可以随时随地用手机浏览器访问网站,打开零件相互交流,对外交流展示更加方便。贫道相信其它各个领域都有用到WebGL的项目,比如国内大型电商平台推进商品在线3D预览显示计划,3D效果的展示要比一张图片体验好得多;游戏行业希望在线部署游戏,相比需要下载的游戏更加有利于推广;房地产、酒店、商场领域希望可以通过网页在线展示室内效果,CAD开发公司希望可以利用WebGL技术实现在线进行三维建模。除了特定领域的工程应用外,也有很多的计算机图形学学习者希望用网页在线展示自己的作品、算法,相比客户端使用OpenGL开发的作品而言,使用WebGL技术实现的作品只需要给他人发送一个链接即可。事实上,越来越多的软件应用搬上了网页,浏览器的作用不仅仅用来展示网页内容,而是作为一个平台。不论学习WebGL还是学习OpenGL,其实都是学习计算机图形学及其延伸应用,WebGL对应的是浏览器平台,OpenGL对应的是操作系统平台。

  相比浏览器对WebGL的支持而言,WebGL缺少的是普及问题,人才需求远远大于人才供应。俗话说隔行如隔山,WebGL目前的普及慢,除了图形学比较难以外,也有这方面问题。WebGL前三个字母体现的是互联网平台、浏览器页面,后两个字母体现的是计算机图形学。了解前端的工程师,往往不了解图形学,了解图形学的往往又不了解网站开发,网页设计。关于图形学的学习资料往往都是使用C或C++语言编写,基于操作系统平台。

  因为学员的基础、行业多样化分布,因此本系列WebGL教程尽量照顾不同基础、不同领域的人,对于前端工程师,教程为把图形学的知识系统讲解,对于已经了解图形学的学习者,教程会讲解相关的网页设计知识,只要有一定的编程能力就行。在实际的WebGL项目中,除了图形学本身而言,也要学习交互界面设计,通过HTML和CSS可以完成界面的设计,通过WebGL API、着色器语言GLSL ES和Javascript语言,可以完成图形学部分的开发。如果你已经熟练使用HTML、CSS和Javascript语言,你只需要学习WebGL的API和GLSL ES语言,着色器语言GLSL ES类似C语言,运行在GPU上,对于多数学习过C语言的人来说并不难。对于有OpenGL基础的人而言,WebGL API只不过是OpenGL API子集的子集,更多学习的是如何过渡到互联网的生态环境下,在网页上设计应用的GUI要比操作系统平台方便的多,直接使用超文本语言HTML即可。

  教程的前半部分以实际案例为中心进行讲解,首先会在网页给大家呈现一个要实现的效果,并给出全部源代码,然后对源代码进行文字解析,同时配有相关的视频教程。对于基础好的同学可以直接看代码即可,文字解释可以选择性阅读,基础不好的同学可以多看视频教程,视频可以表达更多的信息,对于代码了解一个轮廓即可,随着时间的推移自然就可以掌握代码细节。