着色器语言是 WebGL 渲染三维图形的关键(也能渲染二维,在浏览器中还可以使用Canvas API做二维渲染),而 GLSL ES 是专门用来编写着色器的编程语言,即我们常说的 Shader 编程语言的一种。

GLSL ES 编程语言是在 OpenGL 着色器语言的基础上,删除和简化一部分功能后形成的,目标平台是消费类电子产器和嵌入式设备(如智能手或游戏机),简化后的 GLSL ES 能够允许硬件厂商对这些设备的硬件进行简化,从而降低硬件的功耗,减少性能开销。

基础

使用GLSL ES编写着色器程序时,注意以下两点:

  • 程序是大小写敏感的(Main 和 main 不同)。

  • 每一个语句者应该以一个英文分号(;)结束。

代码入口

着色器程序和C语言接近,它从 main() 函数开始执行,必须有且仅有一个 main() 函数,而且不接收任何参数。

main() 函数前的 void 关键字表示这个函数不返回任何值,在 GLSL ES 中如果一个函数有返回值,必须在定义函数时明确指定返回值的类型,如果没有返回值,也需要使用 void 来明确表示。

注释

在着色器程序中,可以添加注释,支持下面两种形式:

  • 单行注释:// 后面直到换行处的所有字符为注释。

  1. int kp = 496; // kp是一个卡布列克数

  • 多行注释:/* 和 */ 之间的所有字符为注释。

  1. /**

  2. 我们是一起在学习 WebGL

  3. 从今天开始学习 GLSL ES

  4. */