当我们描述WebGL(以及它的“母技术” OpenGL我们总是说那项技术是用来绘制3D图表的,或者用来为3D图表增添一些视觉效果,比如灯光、纹理、阴影等。这些可能是这门技术应用地最广的地方。
事实上,WebGL可以做更多的事情。它是一个 Web API,允许你直接和图形硬件, 也就是GPU,直接进行通信。它有属于自己的微型编程语言,被称作GLSL,也就意味着你现在就可以领略一下GPU的强大力量,并且随心所欲地使用。2D和3D图表、图像处理、程序化纹理、 terrain generation、视觉效果(如反射、折射、烟、火、流体),甚至那些与图表无关的普通计算(这些计算往往可以利用GPU的优势)都是可能的。限制你的只有硬件和你的想象力。
拥有权利的同时也被赋予了重大的责任。下面这些指导的目的是给你基础的知识:WebGL是如何工作的以及怎样正确使用它,这样你能学到很多关于它的东西。能力越大,责任越大。这些教材的主要目的正是希望帮助你理解WebGL工作的基本原理、如何正确地使用WebGL,从而你可以充分利用这个工具。
基础
如果你不熟悉 OpenGL和 WebGL,请从这里开始:
- 要求你掌握的背景知识:
- Getting started with the web – 在整个教程中,我们将使用非常简单 HTML 和 CSS,因此在学习WebGL之前应当对这些技术有一定的理解。
- JavaScript – 相反,WebGL是个JavaScript API,所以我们将会看到和写许多的Javascript。所以你应该有对Javascript大致清楚的了解,特别是函数、数组、事件。对闭包、对象、构造函数以及原型链的理解也能帮助你学习这些内容。
- WebGL 例子
- 这是一个样例合集,我们按照主题和难度进行了分类。这个的主要目的是用实例来生动地展示WebGL的概念和用途,但是它不是一个完整的教材。
- API参考教程
- 这是WebGL API reference pages上面的教材。它是为一些熟悉OpenGL的人设计的,并且这些人希望顺便学习一点 JavaScript API
深入学习
一旦你掌握了上面所说的基础,你可以开始探索下面这些更加高深的知识:
- WebGL API 参考手册
- 这些页面包含了WebGL中每一个接口、方法、属性、常量的详细描述。另外,你会在这发现有关高级内容、更多实例、使用WebGL的 提示的文章。
- Web图形指南
- 为Web工程师提供Web图形指南,在这里你可以学到关于其他的图形API,例如SVG、用HTML的canvas或video标签构建的2D图图形。
- 基于WebGL的游戏开发
- 这是MDN上游戏开发的页面,在这里你可以学到将WebGL与其他API和技术的集成,因而你可以创建一个身临其境的体验,也可以将它发布给别人体验。