# webgl-training **Repository Path**: kitlab/webgl-training ## Basic Information - **Project Name**: webgl-training - **Description**: webgl training - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: http://monk_wulv.gitee.io/webgl-training - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-05-10 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Training ## 1. Resource [Khronos WebGL API Registry](https://www.khronos.org/registry/webgl/) [WebGL Specifications](https://www.khronos.org/registry/webgl/specs/latest/) WebGL 1.0: https://www.khronos.org/registry/webgl/specs/latest/1.0/ [**WebIDL:** https://www.khronos.org/registry/webgl/specs/latest/1.0/webgl.idl](https://www.khronos.org/registry/webgl/specs/latest/1.0/webgl.idl) WebGL 2.0: https://www.khronos.org/registry/webgl/specs/latest/2.0/ [**WebIDL:** https://www.khronos.org/registry/webgl/specs/latest/2.0/webgl2.idl](https://www.khronos.org/registry/webgl/specs/latest/2.0/webgl2.idl) ## 2. WebGL 1.0 API ### 2.1 WebGLRenderingContext #### 2.1.1 WebGL上下文 ##### [`WebGLRenderingContext.canvas`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/canvas) 只读属性,对 [`HTMLCanvasElement`](https://developer.mozilla.org/zh-CN/docs/Web/API/HTMLCanvasElement) 的向后引用。如果上下文没有相联系的 [``](https://developer.mozilla.org/zh-CN/docs/Web/HTML/Element/canvas) 元素,值将会为 [`null`](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/null)。 ##### [`WebGLRenderingContext.commit()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/commit) 如果上下文没有指定的canvas,把帧交给原始的[`HTMLCanvasElement`](https://developer.mozilla.org/zh-CN/docs/Web/API/HTMLCanvasElement)元素。 ##### [`WebGLRenderingContext.drawingBufferWidth`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/drawingBufferWidth) 只读属性,当前绘图缓冲区的宽度,等于和该上下文相联系的 canvas 元素的宽度。 ##### [`WebGLRenderingContext.drawingBufferHeight`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/drawingBufferHeight) 只读属性,当前绘图缓冲区的高度,等于和该上下文相联系的 canvas 元素的高度。 ##### [`WebGLRenderingContext.getContextAttributes()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/getContextAttributes) 返回 `WebGLContextAttributes 对象,该对象包含真实的上下文参数。如果上下文丢失,将会返回` [`null`](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/null)。 ##### [`WebGLRenderingContext.isContextLost()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/isContextLost) 如果上下文丢失,返回true;否则,返回 false。 #### 2.1.2 视野和裁剪 ##### [`WebGLRenderingContext.scissor()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/scissor) 设置裁剪框。 ##### [`WebGLRenderingContext.viewport()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/viewport) 设置视口。 #### 2.1.3 状态信息 ##### [`WebGLRenderingContext.activeTexture()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/activeTexture) 选择要激活的纹理单元。 ##### [`WebGLRenderingContext.blendColor()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/blendColor) 设置源和目标的混和因子。 ##### [`WebGLRenderingContext.blendEquation()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/blendEquation) 用同一个表达式设置 RGB 混和表达式和 alpha 混和表达式。 ##### [`WebGLRenderingContext.blendEquationSeparate()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/blendEquationSeparate) 分开设置 RGB 混和表达式和 alpha 混和表达式。 ##### [`WebGLRenderingContext.blendFunc()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/blendFunc) 定义用于像素混合算法的函数。 ##### [`WebGLRenderingContext.blendFuncSeparate()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/blendFuncSeparate) 分别定义混合像素RGB通道和透明通道的函数。 ##### [`WebGLRenderingContext.clearColor()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/clearColor) 设置用于清空用的颜色。 ##### [`WebGLRenderingContext.clearDepth()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/clearDepth) 设置清除深度缓存时的深度值。 ##### [`WebGLRenderingContext.clearStencil()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/clearStencil) 设置清除模板缓冲区时的模板值。 ##### [`WebGLRenderingContext.colorMask()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/colorMask) 设置在绘制或渲染[`WebGLFramebuffer`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLFramebuffer)时要开启或关闭的颜色分量。 ##### [`WebGLRenderingContext.cullFace()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/cullFace) 设置多边形的正面和/或反面是否要被排除。 ##### [`WebGLRenderingContext.depthFunc()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/depthFunc) 设置比较输入像素深度和深度缓存值得函数。 ##### [`WebGLRenderingContext.depthMask()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/depthMask) 设置是否写入深度缓存。 ##### [`WebGLRenderingContext.depthRange()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/depthRange) 设置从规范化设备坐标映射到窗口或视口坐标时的深度范围。 ##### [`WebGLRenderingContext.disable()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/disable) 禁用这个上下文的WebGL功能。 ##### [`WebGLRenderingContext.enable()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/enable) 启用这个上下文的WebGL功能。 ##### [`WebGLRenderingContext.frontFace()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/frontFace) 设置多边形的正面使用顺时针还是逆时针绘制表示。 ##### [`WebGLRenderingContext.getParameter()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/getParameter) 返回给入参数名的值。 ##### [`WebGLRenderingContext.getError()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/getError) 返回错误信息。 ##### [`WebGLRenderingContext.hint()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/hint) 给某些行为设置建议使用的模式。具体建议需要看执行的情况。 ##### [`WebGLRenderingContext.isEnabled()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/isEnabled) 测试这个上下文的WebGL功能是否开启。 ##### [`WebGLRenderingContext.lineWidth()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/lineWidth) 设置线宽。 ##### [`WebGLRenderingContext.pixelStorei()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/pixelStorei) 设置像素存储模式。 ##### [`WebGLRenderingContext.polygonOffset()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/polygonOffset) 设置多边形偏移的比例和单位,从而计算深度值。(补充:解决深度冲突) ##### [`WebGLRenderingContext.sampleCoverage()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/sampleCoverage) 为抗锯齿效果设置多重取样覆盖参数。 ##### [`WebGLRenderingContext.stencilFunc()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/stencilFunc) 同时设置前面和背面的模板测试函数,及其引用值。 ##### [`WebGLRenderingContext.stencilFuncSeparate()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/stencilFuncSeparate) 可分开设置前面或背面的模板测试函数,及其引用值。 ##### [`WebGLRenderingContext.stencilMask()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/stencilMask) 同时启用或禁用,前面和背面的模板测试掩码。 ##### [`WebGLRenderingContext.stencilMaskSeparate()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/stencilMaskSeparate) 可分开启用或禁用,前面和背面的模板测试掩码。 ##### [`WebGLRenderingContext.stencilOp()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/stencilOp) 同时设置,在前面和背面的模板缓冲区上执行的操作。 ##### [`WebGLRenderingContext.stencilOpSeparate()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/stencilOpSeparate) 可分开设置,在前面和背面的模板缓冲区上执行的操作。 #### 2.1.4 缓冲区 ##### [`WebGLRenderingContext.bindBuffer()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/bindBuffer) 把 `WebGLBuffer` 对象绑定到指定目标上。 ##### [`WebGLRenderingContext.bufferData()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/bufferData) 更新缓冲数据。 ##### [`WebGLRenderingContext.bufferSubData()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/bufferSubData) 更新从给入偏移量开始的缓冲数据。 ##### [`WebGLRenderingContext.createBuffer()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/createBuffer) 创建 `WebGLBuffer` 对象。 ##### [`WebGLRenderingContext.deleteBuffer()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/deleteBuffer) 删除 `WebGLBuffer` 对象。 ##### [`WebGLRenderingContext.getBufferParameter()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/getBufferParameter) 返回缓冲信息。 ##### [`WebGLRenderingContext.isBuffer()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/isBuffer) 返回给入的缓冲是否有效。 #### 2.1.5 帧缓冲区 ##### [`WebGLRenderingContext.bindFramebuffer()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/bindFramebuffer) 把 `WebGLFrameBuffer` 对象绑定到指定对象上。 ##### [`WebGLRenderingContext.checkFramebufferStatus()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/checkFramebufferStatus) 返回帧缓冲区的状态。 ##### [`WebGLRenderingContext.createFramebuffer()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/createFramebuffer) 创建 `WebGLFrameBuffer` 对象。 ##### [`WebGLRenderingContext.deleteFramebuffer()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/deleteFramebuffer) 删除 `WebGLFrameBuffer` 对象。 ##### [`WebGLRenderingContext.framebufferRenderbuffer()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/framebufferRenderbuffer) 把 `WebGLRenderingBuffer` 对象附加到 `WebGLFrameBuffer` 对象。 ##### [`WebGLRenderingContext.framebufferTexture2D()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/framebufferTexture2D) 把纹理图像附加到 `WebGLFrameBuffer` object. ##### [`WebGLRenderingContext.getFramebufferAttachmentParameter()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/getFramebufferAttachmentParameter) 返回帧缓冲区的信息。 ##### [`WebGLRenderingContext.isFramebuffer()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/isFramebuffer) 返回 Boolean 值,表示给入的 `WebGLFrameBuffer` 对象是否有效。 ##### [`WebGLRenderingContext.readPixels()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/readPixels) 读取 `WebGLFrameBuffer 的像素。` #### 2.1.6 渲染缓冲区 ##### [`WebGLRenderingContext.bindRenderbuffer()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/bindRenderbuffer) 把 `WebGLRenderBuffer` 对象绑定到指定的对象上。 ##### [`WebGLRenderingContext.createRenderbuffer()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/createRenderbuffer) 创建 `WebGLRenderBuffer` 对象。 ##### [`WebGLRenderingContext.deleteRenderbuffer()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/deleteRenderbuffer) 删除 `WebGLRenderBuffer` 对象。 ##### [`WebGLRenderingContext.getRenderbufferParameter()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/getRenderbufferParameter) 返回渲染缓冲区的信息。 ##### [`WebGLRenderingContext.isBuffer()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/isBuffer) 返回 Boolean 值,表示给入的 `WebGLRenderingBuffer` 是否有效。 ##### [`WebGLRenderingContext.renderbufferStorage()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/renderbufferStorage) 创建渲染缓冲区数据存储。 #### 2.1.7 纹理 ##### [`WebGLRenderingContext.bindTexture()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/bindTexture) 把 `WebGLTexture` 对象绑定到指定对象上。 ##### [`WebGLRenderingContext.compressedTexImage2D()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/compressedTexImage2D) 指定一个为压缩格式的2D纹理图片。 ##### [`WebGLRenderingContext.compressedTexSubImage2D()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/compressedTexSubImage2D) 指定一个为压缩格式的2D纹理子图片。 ##### [`WebGLRenderingContext.copyTexImage2D()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/copyTexImage2D) 复制2D纹理图片。 ##### [`WebGLRenderingContext.copyTexSubImage2D()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/copyTexSubImage2D) 复制2D纹理子图片。 ##### [`WebGLRenderingContext.createTexture()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/createTexture) 创建 `WebGLTexture` 对象。 ##### [`WebGLRenderingContext.deleteTexture()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/deleteTexture) 删除 `WebGLTexture` 对象。 ##### [`WebGLRenderingContext.generateMipmap()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/generateMipmap) 为 `WebGLTexture` 对象生成一组纹理映射。 ##### [`WebGLRenderingContext.getTexParameter()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/getTexParameter) 返回纹理信息。 ##### [`WebGLRenderingContext.isTexture()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/isTexture) 返回 Boolean 值,表示给入的 `WebGLTexture` 是否有效。 ##### [`WebGLRenderingContext.texImage2D()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/texImage2D) 指定2D纹理图片。 ##### [`WebGLRenderingContext.texSubImage2D()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/texSubImage2D) 更新当前 `WebGLTexture 的子矩形。` ##### [`WebGLRenderingContext.texParameterf()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/texParameterf) 设置纹理参数。 ##### [`WebGLRenderingContext.texParameteri()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/texParameteri) 设置纹理参数。 #### 2.1.8 程序对象和着色器对象 ##### [`WebGLRenderingContext.attachShader()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/attachShader) 把 `WebGLShader` 添加到 `WebGLProgram。` ##### [`WebGLRenderingContext.bindAttribLocation()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/bindAttribLocation) 绑定一个普通顶点索引到一个命名的attribute 变量 ##### [`WebGLRenderingContext.compileShader()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/compileShader) 编译 `WebGLShader。` ##### [`WebGLRenderingContext.createProgram()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/createProgram) 创建 `WebGLProgram。` ##### [`WebGLRenderingContext.createShader()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/createShader) 创建 `WebGLShader。` ##### [`WebGLRenderingContext.deleteProgram()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/deleteProgram) 删除 `WebGLProgram。` ##### [`WebGLRenderingContext.deleteShader()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/deleteShader) 删除 `WebGLShader。` ##### [`WebGLRenderingContext.detachShader()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/detachShader) 分离 `WebGLShader。` ##### [`WebGLRenderingContext.getAttachedShaders()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/getAttachedShaders) 返回附加在 `WebGLProgram 上的` `WebGLShader` 对象的列表。 ##### [`WebGLRenderingContext.getProgramParameter()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/getProgramParameter) 返回程序对象的信息。 ##### [`WebGLRenderingContext.getProgramInfoLog()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/getProgramInfoLog) 返回 `WebGLProgram `对象的信息日志。 ##### [`WebGLRenderingContext.getShaderParameter()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/getShaderParameter) 返回着色器的信息。 ##### [`WebGLRenderingContext.getShaderPrecisionFormat()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/getShaderPrecisionFormat) 返回一个描述着色器数字类型精度的`WebGLShaderPrecisionFormat` 对象。 ##### [`WebGLRenderingContext.getShaderInfoLog()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/getShaderInfoLog) 返回 `WebGLShader` 对象的信息日志。 ##### [`WebGLRenderingContext.getShaderSource()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/getShaderSource) 以字符串形式返回 `WebGLShader` 的源码。 ##### [`WebGLRenderingContext.isProgram()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/isProgram) 返回一个 Boolean 值,表示给入的 `WebGLProgram` 是否有效。 ##### [`WebGLRenderingContext.isShader()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/isShader) 返回一个 Boolean 值,表示给入的 `WebGLShader` 是否有效。 ##### [`WebGLRenderingContext.linkProgram()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/linkProgram) 链接给入的 `WebGLProgram` 对象。 ##### [`WebGLRenderingContext.shaderSource()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/shaderSource) 设置一个 `WebGLShader 的源码。` ##### [`WebGLRenderingContext.useProgram()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/useProgram) 使用指定的 `WebGLProgram` 作为当前渲染状态的一部分。 ##### [`WebGLRenderingContext.validateProgram()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/validateProgram) 使 `WebGLProgram 生效。` #### 2.1.9 Uniform 和 Attribute ##### [`WebGLRenderingContext.disableVertexAttribArray()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/disableVertexAttribArray) 在给定的位置,禁用顶点attribute数组。 ##### [`WebGLRenderingContext.enableVertexAttribArray()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/enableVertexAttribArray) 在给定的位置,启用顶点attribute数组。 ##### [`WebGLRenderingContext.getActiveAttrib()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/getActiveAttrib) 返回激活状态的attribute变量信息。 ##### [`WebGLRenderingContext.getActiveUniform()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/getActiveUniform) 返回激活状态的uniform 变量信息。 ##### [`WebGLRenderingContext.getAttribLocation()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/getAttribLocation) 返回attribute变量的指针位置。 ##### [`WebGLRenderingContext.getUniform()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/getUniform) 返回指定位置的uniform 变量。 ##### [`WebGLRenderingContext.getUniformLocation()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/getUniformLocation) 返回uniform 变量的指针位置。 ##### [`WebGLRenderingContext.getVertexAttrib()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/getVertexAttrib) 返回指定位置的顶点attribute变量。 ##### [`WebGLRenderingContext.getVertexAttribOffset()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/getVertexAttribOffset) 获取给定索引的顶点attribute位置。 ##### [`WebGLRenderingContext.uniform[1234][fi][v]()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/uniform) 指定一个uniform变量。 ##### [`WebGLRenderingContext.uniformMatrix[234]fv()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/uniformMatrix) 指定一个uniform矩阵变量。 ##### [`WebGLRenderingContext.vertexAttrib[1234]f[v]()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/vertexAttrib) 指定一个普通顶点attribute的值。 ##### [`WebGLRenderingContext.vertexAttribPointer()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/vertexAttribPointer) 指定一个顶点attributes 数组中,顶点attributes 变量的数据格式和位置。 #### 2.1.10 绘制缓冲区 ##### [`WebGLRenderingContext.clear()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/clear) 把指定的缓冲区清空为预设的值。 ##### [`WebGLRenderingContext.drawArrays()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/drawArrays) 渲染数组中的原始数据。 ##### [`WebGLRenderingContext.drawElements()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/drawElements) 渲染元素数组中的原始数据。 ##### [`WebGLRenderingContext.finish()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/finish) 阻断执行,直到之前所有的操作都完成。 ##### [`WebGLRenderingContext.flush()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/flush) 清空缓冲的命令,这会导致所有命令尽快执行完。 #### 2.1.11 插件 ##### [`WebGLRenderingContext.getSupportedExtensions()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/getSupportedExtensions) 返回一个包含 [`DOMString`](https://developer.mozilla.org/zh-CN/docs/Web/API/DOMString) 的 [`Array`](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Array) ,每个元素都为支持的WebGL扩展。 ##### [`WebGLRenderingContext.getExtension()`](https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/getExtension) 返回一个扩展对象。 ### WebGL constants ## WebGL 2.0 API