A

gl.activeTexture( texUnit ) : 激活纹理单元

texUnit : 纹理单元

gl.attachShader( program, shader ) : 为程序对象分配着色器

program : 程序对象
shader : 着色器

B

gl.bindBuffer( target, buffer ) : 绑定缓冲区对象

target : 目标
buffer : 由 gl.createBuffer() 创建出来的缓冲区对象

gl.bindTexture( target, texture ) : 绑定纹理对象

target : 目标 gl.TEXTURE_2D, gl.TEXTURE_CUBE_MAP
texture : 纹理单元

gl.bufferData( target, data, usage ) : 向缓冲区对象写入数据

target : 目标
data : 数据
usage: 程序将如何使用存储在缓冲区对象中的数据

C

gl.clear() : 清空缓冲区

gl.COLOR_BUFFER_BIT     颜色缓冲区
gl.DEPTH_BUFFER_BIT     深度缓冲区
gl.STENCIL_BUFFER_BIT    模板缓冲区

gl.clearColor( r, g, b, a ) : 设置 <canvas> 的背景色。一旦指定了背景色,在下一次调用gl.clearColor()前不会改变。

r : red 红色 0.0 ~ 1.0
g : green 绿色 0.0 ~ 1.0
b : blue 蓝色 0.0 ~ 1.0
a : alpha 透明度 0.0 ~ 1.0

gl.compileShader( shader ) : 编译着色器,编译成二进制的可执行格式。如果调用 gl.shaderSource(shader, theSource),用新代码替换旧代码,需要重新编译

shader : 待编译的着色器

gl.createBuffer() : 创建一个用于储存顶点数据或着色数据的缓冲区对象

gl.createProgram() : 创建程序对象,一个程序对象必须包含一个顶点着色器和一个片元着色器

gl.createShader( type ) : 创建着色器对象

type : 着色器的类型
gl.VERTEX_SHADER : 顶点着色器, gl.FRAGMENT_SHADER : 片元着色器

gl.createTexture() : 创建纹理对象

D

gl.deleteBuffer( buffer ) : 删除缓冲区对象

buffer : 待删除的缓冲区对象

gl.deleteProgram( program ) : 删除程序对象

program : 待删除的程序对象

gl.deleteShader( shader ) : 删除着色器

shader : 待删除的着色器

gl.deleteTexture( texture ) : 删除纹理对象

texture : 待删除的纹理对象

gl.detachShader( program, shader ) : 解除分配给程序对象的着色器

program : 程序对象
shader : 着色器

gl.disable( capability ) : 禁用功能

capability : 要开启的功能 gl.DEPTH_TEST, gl.BLEND, gl.POLYGON_OFFSET_FILL

gl.disableVertexAttribArray( location ) : 关闭 attribute 变量

location : attribute 变量的存储地址

gl.drawArrays( mode, first, count ) : 绘制图形

mode : 绘制的方式 gl.POINTS, gl.LINES, gl.LINE_STRIP, gl.LINE_LOOP, gl.TRIANGLE_STRIP, gl.TRIANGLE_FAN, gl.TRIANGLES
first : 从哪个点开始绘制
count : 指定绘制需要使用到多少个点

gl.drawElements( mode, count, type, offset ) : 绘制图形

mode : 绘制的方式 gl.POINTS, gl.LINES, gl.LINE_STRIP, gl.LINE_LOOP, gl.TRIANGLE_STRIP, gl.TRIANGLE_FAN, gl.TRIANGLES
count : 顶点的个数
type : 索引数据类型 gl.UNSIGNED_BYTE, gl.UNSIGNED_SHORT
offset : 索引数组中开始的位置,以字节为单位

E

gl.enable( capability ) : 开启功能

capability : 要开启的功能 gl.DEPTH_TEST, gl.BLEND, gl.POLYGON_OFFSET_FILL

gl.enableVertexAttribArray( location ) : 开启 attribute 变量

location : attribute 变量的存储地址

G

gl.getAttribLocation( program, name ) : 获取 attribute 变量的存储地址

program : 程序对象
name : 着色器中 attribute 变量的名称,字符串getParameter

gl.getParameter( pname ) : 获取参数值

pname : 参数名

gl.getProgramInfoLog( program ) : 获取程序对象的信息

program : 程序对象

gl.getProgramParameter( program, name ) : 检查程序对象状态

program : 程序对象
name : 指代获取参数的类型,根据pname的不同,返回不同的值

name return
gl.ACTIVE_ATTRIBUTES 顶点着色器中 attribute 变量的数量
gl.ACTIVE_UNIFORMS 程序中uniform变量的数量
gl.ATTACHED_SHADERS 已被分配给程序的着色器数量
gl.DELETE_STATUS 程序是否已被删除
gl.LINK_STATUS 程序是否连接成功
gl.VALIDATE_STATUS 程序是否已通过验证

gl.getShaderInfoLog( shader ) : 获取着色器的信息

shader : 指定待获取信息日志的着色器

gl.getShaderParameter( shader, name ) : 检查着色器的状态

shader : 着色器
name : 指代获取参数的类型,根据pname的不同,返回不同的值

name return
gl.SHADER_TYPE 着色器类型:gl.VERTEX_SHADER / gl.FRAGMENT_SHADER
gl.DELETE_STATUS 着色器是否被删除成功:true / false
gl.COMPILE_STATUS 着色器是否被编译成功:true / false

gl.getUniformLocation( program, name ) : 获取 uniform 变量的存储地址

program : 程序对象
name : 着色器中 uniform 变量的名称,字符串

L

gl.linkProgram( program ) : 将顶点着色器和片元着色器连接起来

program : 程序对象

P

gl.pixelStorei( pname, param ) : 设置像素的存储格式

pname : 处理方式 gl.PACK_ALIGNMENT、 gl.UNPACK_ALIGNMENT、 gl.UNPACK_FLIP_Y_WEBGL、gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL、 gl.UNPACK_COLORSPACE_CONVERSION_WEBGL
param : 指定为 0 / 非0,true / flase

gl.polygonOffset( factor, units ) : 计算加到每个顶点绘制后 z 值上的偏移量,按照公式 m * factor + r * units 计算。其中 m 表示顶点所在表面相对于观察者的视线的角度,而 r 表示硬件能够区分两个 z 值之差的最小值

factor : 为每个多边形设置可变深度偏移的比例因子
units : 用于设置乘以特定实现值的乘数,以创建恒定的深度偏移

S

gl.shaderSource( shader, source ) : 指定着色器 GLSL ES 代码

shader : 着色器对象
source : 字符串形式的 GLSL ES 代码

T

gl.texImage2D( target, level, internalformat, format, type, image ) : 将纹理图像分配给纹理对象

target : 目标 gl.TEXTURE_2D, gl.TEXTURE_CUBE_MAP
level : 详细程度,级别0是基本图像级别,级别n是第n个mipmap缩减级别
internalformat : 纹理中的颜色分量 gl.RGB,gl.RGBA,gl.ALPHA, gl.LUMINANCE,gl.LUMINANCE_ALPHA
format : 纹理数据格式,在 WegGL 1 中,跟 internalformat 一致
type : 纹理数据类型 gl.UNSIGNED_BYTE,gl.UNSIGNED_SHORT_5_6_5, gl.UNSIGNED_SHORT_4_4_4_4, gl.UNSIGNED_SHORT_5_5_5_1
image : 图像

gl.texParameterf( target, pname, param ) : 配置纹理对象的参数

target : 目标 gl.TEXTURE_2D, gl.TEXTURE_CUBE_MAP
pname : 纹理参数
param : 纹理参数的值( float )

gl.texParameteri( target, pname, param ) : 配置纹理对象的参数

target : 目标 gl.TEXTURE_2D, gl.TEXTURE_CUBE_MAP
pname : 纹理参数
param : 纹理参数的值( 整数 )

pname param
gl.TEXTURE_MAG_FILTER 纹理放大 gl.LINEAR (default value), gl.NEAREST
gl.TEXTURE_MIN_FILTER 纹理缩小 gl.LINEAR, gl.NEAREST, gl.NEAREST_MIPMAP_NEAREST, gl.LINEAR_MIPMAP_NEAREST, gl.NEAREST_MIPMAP_LINEAR (default value), gl.LINEAR_MIPMAP_LINEAR
gl.TEXTURE_WRAP_S 纹理水平填充 gl.REPEAT (default value),gl.CLAMP_TO_EDGE, gl.MIRRORED_REPEAT
gl.TEXTURE_WRAP_T 纹理垂直填充 gl.REPEAT (default value),gl.CLAMP_TO_EDGE, gl.MIRRORED_REPEAT

U

gl.uniform1f( location, v0 ) : 为 uniform 变量赋值

location : uniform 变量的存储地址
v0 : 赋给 uniform 变量的第一个分量的值

gl.uniform2f( location, v0, v1 )

gl.uniform3f( location, v0, v1, v2 )

gl.uniform4f( location, v0, v1, v2, v3 )

gl.uniformMatrix[1234]fv( location, transpose, array )

location : uniform 变量的存储地址
transpose : 在 WebGL 中为 false array : 按列主序的 4×4 矩阵

gl.useProgram( program ) : 告知 WebGL 系统渲染绘制时使用哪个程序对象

program : 程序对象

V

gl.vertexAttrib1f( location, v0 ) : 为顶点 attribute 变量赋值

location : attribute 变量的存储地址
v0 : 赋给 attribute 变量的第一个分量的值

gl.vertexAttrib2f( location, v0, v1 )

gl.vertexAttrib3f( location, v0, v1, v2 )

gl.vertexAttrib4f( location, v0, v1, v2, v3 )

gl.vertexAttrib[1234]fv( location, value ) : 为顶点 attribute 变量赋值

location : attribute 变量的存储地址
value : new Float32Array( [ ] );

gl.vertexAttribPointer( location, size, type, normalized, stride, offset ) : 为顶点 attribute 变量赋值

location : attribute 变量的存储地址
size : 缓冲区中每个顶点的分量个数, 1 ~ 4
type : gl.UNSIGNED_BYTE, gl.SHORT, gl.UNSIGNED_SHORT, gl.INT, gl.UNSIGNED_INT, gl.FLOAT
normalized : 是否将浮点数归一到[0, 1]或[-1, 1]区间 true / false
stride : 指定两个相邻顶点间的字节数,默认为0
offset : 指定缓冲区对象中的偏移量,即 attribute 变量从缓冲区中的何处开始

gl.viewport( x, y, width, height ) : 设置视口,即指定从标准设备到窗口坐标的x、y仿射变换。

x : 视口的左下角水平坐标
y : 视口的左下角垂直坐标
width : 视口的宽度
height : 视口的高度