WebGL2RenderingContext
Baseline 广泛可用 *
注意:此功能在 Web Workers 中可用。
WebGL2RenderingContext 接口为 HTML <canvas> 元素的绘图表面提供了 OpenGL ES 3.0 渲染上下文。
要获取此接口的对象,请在 <canvas> 元素上调用 getContext(),并将 "webgl2" 作为参数。
const canvas = document.getElementById("myCanvas");
const gl = canvas.getContext("webgl2");
注意: WebGL 2 是 WebGL 1 的扩展。WebGL2RenderingContext 接口实现了 WebGLRenderingContext 接口的所有成员。在 WebGL 2 上下文中,WebGL 1 上下文的一些方法可以接受附加值。您会在 WebGL 1 参考页面上找到这些信息。
有关如何开始使用 WebGL 的更多信息、示例和资源,请参阅 WebGL 教程。
常量
请参阅 WebGL 常量页面。
状态信息
WebGL2RenderingContext.getIndexedParameter()-
返回给定
target的索引值。
缓冲区
WebGL2RenderingContext.bufferData()-
初始化并创建缓冲对象的数据存储。
WebGL2RenderingContext.bufferSubData()-
更新缓冲对象数据存储的子集。
WebGL2RenderingContext.copyBufferSubData()-
将一个缓冲的部分数据复制到另一个缓冲。
WebGL2RenderingContext.getBufferSubData()-
从缓冲读取数据并将其写入
ArrayBuffer或SharedArrayBuffer。
帧缓冲
WebGL2RenderingContext.blitFramebuffer()-
将像素块从读取帧缓冲传输到绘制帧缓冲。
WebGL2RenderingContext.framebufferTextureLayer()-
将纹理的单个图层附加到帧缓冲。
WebGL2RenderingContext.invalidateFramebuffer()-
使帧缓冲中的附件内容无效。
WebGL2RenderingContext.invalidateSubFramebuffer()-
使帧缓冲附件的部分内容无效。
WebGL2RenderingContext.readBuffer()-
选择一个颜色缓冲作为像素源。
渲染缓冲
WebGL2RenderingContext.getInternalformatParameter()-
返回关于内部格式的实现相关支持的信息。
WebGL2RenderingContext.renderbufferStorageMultisample()-
创建并初始化渲染缓冲对象的数据存储,并允许指定使用的样本数。
纹理
WebGL2RenderingContext.texStorage2D()-
指定二维纹理存储的所有层级。
WebGL2RenderingContext.texStorage3D()-
指定三维纹理或二维数组纹理的所有层级。
WebGL2RenderingContext.texImage3D()-
指定三维纹理图像。
WebGL2RenderingContext.texSubImage3D()-
指定当前 3D 纹理的子矩形。
WebGL2RenderingContext.copyTexSubImage3D()-
将当前
WebGLFramebuffer的像素复制到一个现有的 3D 纹理子图像中。 WebGL2RenderingContext.compressedTexImage3D-
以压缩格式指定三维纹理图像。
WebGL2RenderingContext.compressedTexSubImage3D()-
以压缩格式指定纹理图像的三维子矩形。
程序和着色器
WebGL2RenderingContext.getFragDataLocation()-
返回颜色编号与用户定义的 varying 输出变量的绑定。
统一变量和属性
WebGL2RenderingContext.uniform[1234][uif][v]()-
指定统一变量值的函数。
WebGL2RenderingContext.uniformMatrix[234]x[234]fv()-
指定统一变量的矩阵值的函数。
WebGL2RenderingContext.vertexAttribI4[u]i[v]()-
指定通用顶点属性的整数值的函数。
WebGL2RenderingContext.vertexAttribIPointer()-
指定顶点属性数组中整数数据格式和位置。
颜色空间
WebGL2RenderingContext.drawingBufferColorSpace-
指定 WebGL 绘制缓冲的颜色空间。
WebGL2RenderingContext.unpackColorSpace-
指定导入纹理时要转换到的颜色空间。
绘制缓冲
WebGL2RenderingContext.vertexAttribDivisor()-
修改使用
gl.drawArraysInstanced()和gl.drawElementsInstanced()渲染多个图元实例时通用顶点属性前进的速率。 WebGL2RenderingContext.drawArraysInstanced()-
从数组数据渲染图元。此外,它还可以执行指定范围元素的多个实例。
WebGL2RenderingContext.drawElementsInstanced()-
从数组数据渲染图元。此外,它还可以执行指定元素集合的多个实例。
WebGL2RenderingContext.drawRangeElements()-
在给定范围内从数组数据渲染图元。
WebGL2RenderingContext.drawBuffers()-
指定要绘制到的颜色缓冲列表。
WebGL2RenderingContext.clearBuffer[fiuv]()-
清除当前绑定帧缓冲中的缓冲。
查询对象
处理 WebGLQuery 对象的函数。
WebGL2RenderingContext.createQuery()-
创建一个新的
WebGLQuery对象。 WebGL2RenderingContext.deleteQuery()-
删除给定的
WebGLQuery对象。 WebGL2RenderingContext.isQuery()-
如果给定的对象是有效的
WebGLQuery对象,则返回true。 WebGL2RenderingContext.beginQuery()-
开始一个异步查询。
WebGL2RenderingContext.endQuery()-
标记异步查询的结束。
WebGL2RenderingContext.getQuery()-
返回给定目标的
WebGLQuery对象。 WebGL2RenderingContext.getQueryParameter()-
返回关于查询的信息。
采样器对象
WebGL2RenderingContext.createSampler()-
创建一个新的
WebGLSampler对象。 WebGL2RenderingContext.deleteSampler()-
删除给定的
WebGLSampler对象。 WebGL2RenderingContext.bindSampler()-
将给定的
WebGLSampler绑定到纹理单元。 WebGL2RenderingContext.isSampler()-
如果给定的对象是有效的
WebGLSampler对象,则返回true。 WebGL2RenderingContext.samplerParameter[if]()-
设置采样器参数。
WebGL2RenderingContext.getSamplerParameter()-
返回采样器参数信息。
同步对象
WebGL2RenderingContext.fenceSync()-
创建一个新的
WebGLSync对象,并将其插入 GL 命令流。 WebGL2RenderingContext.isSync()-
如果传入的对象是有效的
WebGLSync对象,则返回true。 WebGL2RenderingContext.deleteSync()-
删除给定的
WebGLSync对象。 WebGL2RenderingContext.clientWaitSync()-
阻塞并等待
WebGLSync对象被触发或达到给定的超时时间。 WebGL2RenderingContext.waitSync()-
立即返回,但在 GL 服务器端等待,直到给定的
WebGLSync对象被触发。 WebGL2RenderingContext.getSyncParameter()-
返回
WebGLSync对象的参数信息。
变换反馈
WebGL2RenderingContext.createTransformFeedback()-
创建并初始化
WebGLTransformFeedback对象。 WebGL2RenderingContext.deleteTransformFeedback()-
删除给定的
WebGLTransformFeedback对象。 WebGL2RenderingContext.isTransformFeedback()-
如果传入的对象是有效的
WebGLTransformFeedback对象,则返回true。 WebGL2RenderingContext.bindTransformFeedback()-
将给定的
WebGLTransformFeedback对象绑定到当前的 GL 状态。 WebGL2RenderingContext.beginTransformFeedback()-
开始一个变换反馈操作。
WebGL2RenderingContext.endTransformFeedback()-
结束一个变换反馈操作。
WebGL2RenderingContext.transformFeedbackVaryings()-
指定要在
WebGLTransformFeedback缓冲区中记录的值。 WebGL2RenderingContext.getTransformFeedbackVarying()-
从
WebGLTransformFeedback缓冲区获取 varying 变量的信息。 WebGL2RenderingContext.pauseTransformFeedback()-
暂停一个变换反馈操作。
WebGL2RenderingContext.resumeTransformFeedback()-
恢复一个变换反馈操作。
统一缓冲对象
WebGL2RenderingContext.bindBufferBase()-
将给定的
WebGLBuffer绑定到指定的绑定点 (target) 和索引 (index)。 WebGL2RenderingContext.bindBufferRange()-
将给定的
WebGLBuffer的一个范围绑定到指定的绑定点 (target) 和索引 (index)。 WebGL2RenderingContext.getUniformIndices()-
检索
WebGLProgram中一组 uniform 的索引。 WebGL2RenderingContext.getActiveUniforms()-
检索
WebGLProgram中活动 uniform 的信息。 WebGL2RenderingContext.getUniformBlockIndex()-
检索
WebGLProgram中 uniform 块的索引。 WebGL2RenderingContext.getActiveUniformBlockParameter()-
检索
WebGLProgram中活动 uniform 块的信息。 WebGL2RenderingContext.getActiveUniformBlockName()-
检索
WebGLProgram中指定索引处的活动 uniform 块的名称。 WebGL2RenderingContext.uniformBlockBinding()-
为活动 uniform 块分配绑定点。
顶点数组对象
处理 WebGLVertexArrayObject (VAO) 对象的函数。
WebGL2RenderingContext.createVertexArray()-
创建一个新的
WebGLVertexArrayObject。 WebGL2RenderingContext.deleteVertexArray()-
删除给定的
WebGLVertexArrayObject。 WebGL2RenderingContext.isVertexArray()-
如果给定的对象是有效的
WebGLVertexArrayObject,则返回true。 WebGL2RenderingContext.bindVertexArray()-
将给定的
WebGLVertexArrayObject绑定到缓冲区。
规范
| 规范 |
|---|
| WebGL 2.0 规范 # 3.7 |
浏览器兼容性
加载中…