From 33058f2b292b3a581333bdfb21b8f671898c5060 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:40:17 -0500 Subject: initial commit --- .../webgl2renderingcontext/beginquery/index.html | 74 ++++++ .../begintransformfeedback/index.html | 79 ++++++ .../bindbufferbase/index.html | 78 ++++++ .../createsampler/index.html | 62 +++++ .../createvertexarray/index.html | 70 ++++++ .../webgl2renderingcontext/drawbuffers/index.html | 75 ++++++ .../web/api/webgl2renderingcontext/index.html | 272 +++++++++++++++++++++ .../webgl2renderingcontext/teximage3d/index.html | 174 +++++++++++++ .../api/webgl2renderingcontext/uniform/index.html | 85 +++++++ .../uniformmatrix/index.html | 79 ++++++ 10 files changed, 1048 insertions(+) create mode 100644 files/zh-cn/web/api/webgl2renderingcontext/beginquery/index.html create mode 100644 files/zh-cn/web/api/webgl2renderingcontext/begintransformfeedback/index.html create mode 100644 files/zh-cn/web/api/webgl2renderingcontext/bindbufferbase/index.html create mode 100644 files/zh-cn/web/api/webgl2renderingcontext/createsampler/index.html create mode 100644 files/zh-cn/web/api/webgl2renderingcontext/createvertexarray/index.html create mode 100644 files/zh-cn/web/api/webgl2renderingcontext/drawbuffers/index.html create mode 100644 files/zh-cn/web/api/webgl2renderingcontext/index.html create mode 100644 files/zh-cn/web/api/webgl2renderingcontext/teximage3d/index.html create mode 100644 files/zh-cn/web/api/webgl2renderingcontext/uniform/index.html create mode 100644 files/zh-cn/web/api/webgl2renderingcontext/uniformmatrix/index.html (limited to 'files/zh-cn/web/api/webgl2renderingcontext') diff --git a/files/zh-cn/web/api/webgl2renderingcontext/beginquery/index.html b/files/zh-cn/web/api/webgl2renderingcontext/beginquery/index.html new file mode 100644 index 0000000000..ef9c00baea --- /dev/null +++ b/files/zh-cn/web/api/webgl2renderingcontext/beginquery/index.html @@ -0,0 +1,74 @@ +--- +title: WebGL2RenderingContext.beginQuery() +slug: Web/API/WebGL2RenderingContext/beginQuery +translation_of: Web/API/WebGL2RenderingContext/beginQuery +--- +
{{APIRef("WebGL")}} {{SeeCompatTable}}
+ +

WebGL 2 APIWebGL2RenderingContext.beginQuery() 方法启动一个异步查询,target 参数表明是哪种类型的查询。

+ +

语法

+ +
void gl.beginQuery(target, query);
+
+ +

参数

+ +
+
target
+
 {{domxref("GLenum")}} 指定查询个的target, 可能的值有: +
    +
  • gl.ANY_SAMPLES_PASSED: Specifies an occlusion query: these queries detect whether an object is visible (whether the scoped drawing commands pass the depth test and if so, how many samples pass).
  • +
  • gl.ANY_SAMPLES_PASSED_CONSERVATIVE: 和以上一样, 但是是一个不精确和更快的版本。
  • +
  • gl.TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN: Number of primitives that are written to transform feedback buffers.
  • +
+
+
query
+
一个{{domxref("WebGLQuery")}} 对象用于查询。
+
+ +

返回值

+ +

None.

+ +

例子

+ +
var query = gl.createQuery();
+gl.beginQuery(gl.ANY_SAMPLES_PASSED, query);
+
+// ...
+
+ +

规范

+ + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('WebGL2', "#3.7.12", "beginQuery")}}{{Spec2('WebGL2')}}Initial definition.
{{SpecName('OpenGL ES 3.0', "glBeginQuery.xhtml", "glBeginQuery")}}{{Spec2('OpenGL ES 3.0')}}Man page of the (similar) OpenGL API.
+ +

浏览器兼容

+ + + +

{{Compat("api.WebGL2RenderingContext.beginQuery")}}

+ +

参考

+ + diff --git a/files/zh-cn/web/api/webgl2renderingcontext/begintransformfeedback/index.html b/files/zh-cn/web/api/webgl2renderingcontext/begintransformfeedback/index.html new file mode 100644 index 0000000000..eb16d118a6 --- /dev/null +++ b/files/zh-cn/web/api/webgl2renderingcontext/begintransformfeedback/index.html @@ -0,0 +1,79 @@ +--- +title: WebGL2RenderingContext.beginTransformFeedback() +slug: Web/API/WebGL2RenderingContext/beginTransformFeedback +tags: + - API + - WebGL + - WebGL2 + - 参考 + - 实验性 + - 方法 +translation_of: Web/API/WebGL2RenderingContext/beginTransformFeedback +--- +
{{APIRef("WebGL")}} {{SeeCompatTable}}
+ +

WebGL 2 API 的 WebGL2RenderingContext.beginTransformFeedback() 方法开始一个变换回传(Transform Feedback)操作。

+ +

语法

+ +
void gl.beginTransformFeedback(primitiveMode);
+
+ +

参数

+ +
+
primitiveMode
+
A {{domxref("GLenum")}} specifying the output type of the primitives that will be recorded into the buffer objects that are bound for transform feedback. 可能的值: +
    +
  • gl.POINTS
  • +
  • gl.LINES
  • +
  • gl.TRIANGLES
  • +
+
+
+ +

返回值

+ +

无。

+ +

示例

+ +
var transformFeedback = gl.createTransformFeedback();
+gl.bindTransformFeedback(gl.TRANSFORM_FEEDBACK, transformFeedback);
+gl.beginTransformFeedback(gl.TRIANGLES);
+gl.drawArrays(gl.TRIANGLES, 0, 3);
+
+ +

规范

+ + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('WebGL2', "#3.7.15", "beginTransformFeedback")}}{{Spec2('WebGL2')}}WebGL中初次定义。
{{SpecName('OpenGL ES 3.0', "glBeginTransformFeedback.xhtml", "glBeginTransformFeedback")}}{{Spec2('OpenGL ES 3.0')}}OpenGL API 页面。
+ +

浏览器兼容性

+ + + +

{{Compat("api.WebGL2RenderingContext.beginTransformFeedback")}}

+ +

相关链接

+ + diff --git a/files/zh-cn/web/api/webgl2renderingcontext/bindbufferbase/index.html b/files/zh-cn/web/api/webgl2renderingcontext/bindbufferbase/index.html new file mode 100644 index 0000000000..353373c972 --- /dev/null +++ b/files/zh-cn/web/api/webgl2renderingcontext/bindbufferbase/index.html @@ -0,0 +1,78 @@ +--- +title: WebGL2RenderingContext.bindBufferBase() +slug: Web/API/WebGL2RenderingContext/bindBufferBase +tags: + - API + - WebGL + - WebGL2 + - 参考 + - 实验性 + - 方法 +translation_of: Web/API/WebGL2RenderingContext/bindBufferBase +--- +
{{APIRef("WebGL")}} {{SeeCompatTable}}
+ +

WebGL 2 API 的 WebGL2RenderingContext.bindBufferBase() 方法将一个 {{domxref("WebGLBuffer")}} 绑定到某个点 (target) 的特定的 index上。

+ +

语法

+ +
void gl.bindBufferBase(target, index, buffer);
+ +

参数

+ +
+
target
+
{{domxref("Glenum")}} 指定绑定操作的目标。可能的值: +
    +
  • gl.TRANSFORM_FEEDBACK_BUFFER
  • +
  • gl.UNIFORM_BUFFER
  • +
+
+
index
+
{{domxref("GLuint")}} 指定目标(target)的 index 。
+
buffer
+
绑定到目标点(target)的 {{domxref("WebGLBuffer")}} 。
+
+ +

返回值

+ +

无。

+ +

示例

+ +
gl.bindBufferBase(gl.TRANSFORM_FEEDBACK_BUFFER, 0, buffer);
+
+ +

规范

+ + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('WebGL2', "#3.7.16", "bindBufferBase")}}{{Spec2('WebGL2')}}WebGL中初次定义。
{{SpecName('OpenGL ES 3.0', "glBindBufferBase.xhtml", "glBindBufferBase")}}{{Spec2('OpenGL ES 3.0')}}OpenGL API 页面。
+ +

浏览器兼容性

+ + + +

{{Compat("api.WebGL2RenderingContext.bindBufferBase")}}

+ +

相关链接

+ + diff --git a/files/zh-cn/web/api/webgl2renderingcontext/createsampler/index.html b/files/zh-cn/web/api/webgl2renderingcontext/createsampler/index.html new file mode 100644 index 0000000000..c9aa1b16e1 --- /dev/null +++ b/files/zh-cn/web/api/webgl2renderingcontext/createsampler/index.html @@ -0,0 +1,62 @@ +--- +title: WebGL2RenderingContext.createSampler() +slug: Web/API/WebGL2RenderingContext/createSampler +translation_of: Web/API/WebGL2RenderingContext/createSampler +--- +
{{APIRef("WebGL")}} {{SeeCompatTable}}
+ +

WebGL 2 API 定义的 WebGL2RenderingContext.createSampler() 方法用于创建并初始化 {{domxref("WebGLSampler")}} 对象.

+ +

句法

+ +
WebGLSampler gl.createSampler();
+
+ +

参数

+ +

无.

+ +

返回值

+ +

{{domxref("WebGLSampler")}} 对象.

+ +

例子

+ +

gl 必须是 {{domxref("WebGL2RenderingContext")}} 类型. WebGL 1 不支持  WebGLSampler 对象.

+ +
var sampler = gl.createSampler();
+
+ +

相关规范

+ + + + + + + + + + + + + + + + + + + +
规范名状态备注
{{SpecName('WebGL2', "#3.7.13", "createSampler")}}{{Spec2('WebGL2')}}初稿.
{{SpecName('OpenGL ES 3.0', "glGenSamplers.xhtml", "glGenSamplers")}}{{Spec2('OpenGL ES 3.0')}}OpenGL API 的手册.
+ +

浏览器兼容

+ + + +

{{Compat("api.WebGL2RenderingContext.createSampler")}}

+ +

另见

+ + diff --git a/files/zh-cn/web/api/webgl2renderingcontext/createvertexarray/index.html b/files/zh-cn/web/api/webgl2renderingcontext/createvertexarray/index.html new file mode 100644 index 0000000000..e05e7869a1 --- /dev/null +++ b/files/zh-cn/web/api/webgl2renderingcontext/createvertexarray/index.html @@ -0,0 +1,70 @@ +--- +title: WebGL2RenderingContext.createVertexArray() +slug: Web/API/WebGL2RenderingContext/createVertexArray +tags: + - Method + - WebGL2 +translation_of: Web/API/WebGL2RenderingContext/createVertexArray +--- +
{{APIRef("WebGL")}} {{SeeCompatTable}}
+ +

WebGL 2 API 中的 WebGL2RenderingContext.createVertexArray()方法创建并初始化(creates and initializes)一个 {{domxref("WebGLVertexArrayObject")}} 的对象(object) ,它代表一个指向顶点数组数据的顶点数组对象(vertex array object (VAO) ),并为不同的顶点数据集提供名称。

+ +

句法

+ +
WebGLVertexArrayObject gl.createVertexArray();
+
+ +

参数

+ +

没有参数

+ +

返回值

+ +

一个{{domxref("WebGLVertexArrayObject")}}对象 代表 一个顶点数组对象 (VAO) ,该对象指向顶点数据。

+ +

示例

+ +
var vao = gl.createVertexArray();
+gl.bindVertexArray(vao);
+
+// ...
+// calls to bindBuffer or vertexAttribPointer
+// which will be "recorded" in the VAO
+// ...
+
+ +

规范

+ + + + + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('WebGL2', "#3.7.17", "createVertexArray")}}{{Spec2('WebGL2')}}Initial definition.
{{SpecName('OpenGL ES 3.0', "glGenVertexArrays.xhtml", "glGenVertexArrays")}}{{Spec2('OpenGL ES 3.0')}}Man page of the (similar) OpenGL API.
+ +

浏览器兼容性

+ + + +

{{Compat("api.WebGL2RenderingContext.createVertexArray")}}

+ +

另见

+ + diff --git a/files/zh-cn/web/api/webgl2renderingcontext/drawbuffers/index.html b/files/zh-cn/web/api/webgl2renderingcontext/drawbuffers/index.html new file mode 100644 index 0000000000..9a8f3f6797 --- /dev/null +++ b/files/zh-cn/web/api/webgl2renderingcontext/drawbuffers/index.html @@ -0,0 +1,75 @@ +--- +title: WebGL2RenderingContext.drawBuffers() +slug: Web/API/WebGL2RenderingContext/drawBuffers +translation_of: Web/API/WebGL2RenderingContext/drawBuffers +--- +
{{APIRef("WebGL")}} {{SeeCompatTable}}
+ +

WebGL 2 APIWebGL2RenderingContext.drawBuffers()  方法定义了将写入零散数据(fragment colors)的绘制缓存(draw buffer)。绘制缓存设置了上一次绑定帧缓存状态,如果没有帧缓存可用的话,则用绘制缓存。

+ +

语法

+ +
void gl.drawBuffers(buffers);
+
+ +

参数

+ +
+
buffers
+
一个 {{domxref("GLenum")}}的{{jsxref("Array")}}} 对碎片颜色的说明将被写入缓冲区。可能的值有: +
    +
  • gl.NONE: 碎片着色器的输出没有被写入到任何颜色缓存中。
  • +
  • gl.BACK: 碎片着色器的输出被写入到返回的颜色缓存中。
  • +
  • gl.COLOR_ATTACHMENT{0-15}: 碎片着色器的输出被写入当前帧缓存的第n个颜色缓存中。Fragment shader output is written in the nth color attachment of the current framebuffer.
  • +
+
+
+ +

返回值

+ +

没有。

+ +

报错信息

+ + + +

例子

+ +
gl.drawBuffers([gl.NONE, gl.COLOR_ATTACHMENT1]);
+
+ +

详情

+ + + + + + + + + + + + + + + + + + + +
详情状态用法(Comment)
{{SpecName('WebGL2', "#3.7.11", "drawBuffers")}}{{Spec2('WebGL2')}}Initial definition for WebGL.
{{SpecName('OpenGL ES 3.0', "glDrawBuffers.xhtml", "glDrawBuffers")}}{{Spec2('OpenGL ES 3.0')}}Man page of the (similar) OpenGL API.
+ +

浏览器兼容性

+ + + +

{{Compat("api/WebGL2RenderingContext", "WebGL2RenderingContext.drawBuffers")}}

+ +

详见

+ + diff --git a/files/zh-cn/web/api/webgl2renderingcontext/index.html b/files/zh-cn/web/api/webgl2renderingcontext/index.html new file mode 100644 index 0000000000..faac90295a --- /dev/null +++ b/files/zh-cn/web/api/webgl2renderingcontext/index.html @@ -0,0 +1,272 @@ +--- +title: WebGL2RenderingContext +slug: Web/API/WebGL2RenderingContext +translation_of: Web/API/WebGL2RenderingContext +--- +
{{APIRef("WebGL")}} {{SeeCompatTable}}
+ +

WebGL2RenderingContext 接口在底层使用了OpenGL ES 3.0 为 HTML 的 {{HTMLElement("canvas")}} 元素提供了绘图上下文。

+ +

要获取该接口的实例对象需要调用一个  <canvas>  标签对象的 {{domxref("HTMLCanvasElement.getContext()", "getContext()")}} 函数,并将 "webgl2" 作为参数传递:

+ +
var canvas = document.getElementById('myCanvas');
+var gl = canvas.getContext('webgl2');
+
+ +
+

WebGL 2 是 WebGL 1 的扩展。 WebGL2RenderingContext 接口实现了 {{domxref("WebGLRenderingContext")}} 接口的所有成员。 有一些 WebGL 1 上下文中的方法在使用 WebGL 2 上下文的时候可以接受附加值。 您可以通过 WebGL 1 的参考页了解这些信息。

+
+ +

这个 WebGL 教程 中提供了关于如何开始使用 WebGL 的更多信息、示例以及资源。

+ +

常量

+ +

请看 WebGL 常量 页面。

+ +

状态信息

+ +
+
{{domxref("WebGL2RenderingContext.getIndexedParameter()")}}
+
返回指定目标的索引值。
+
+ +

缓冲区

+ +
+
{{domxref("WebGL2RenderingContext.copyBufferSubData()")}}
+
将缓冲区的部分数据复制到另一个缓冲区。
+
{{domxref("WebGL2RenderingContext.getBufferSubData()")}}
+
从缓冲区中读取数据,然后将其写入到 {{jsxref("ArrayBuffer")}} 或 {{jsxref("SharedArrayBuffer")}} 中。
+
+ +

帧缓冲区

+ +
+
{{domxref("WebGL2RenderingContext.blitFramebuffer()")}}
+
将一个像素块从读取帧缓冲区传输到绘制帧缓冲区。
+
{{domxref("WebGL2RenderingContext.framebufferTextureLayer()")}}
+
附着一个单层的材质到帧缓冲区。
+
{{domxref("WebGL2RenderingContext.invalidateFramebuffer()")}}
+
使附着到缓冲区的内容失效。
+
{{domxref("WebGL2RenderingContext.invalidateSubFramebuffer()")}}
+
使附着到缓冲区的部分内容失效。
+
{{domxref("WebGL2RenderingContext.readBuffer()")}}
+
选择一个颜色缓冲作为像素的source。
+
+ +

渲染缓冲区

+ +
+
{{domxref("WebGL2RenderingContext.getInternalformatParameter()")}}
+
Returns information about implementation-dependent support for internal formats.
+
{{domxref("WebGL2RenderingContext.renderbufferStorageMultisample()")}}
+
Creates and initializes a renderbuffer object's data store and allows specifying the number of samples to be used.
+
+ +

纹理

+ +
+
{{domxref("WebGL2RenderingContext.texStorage2D()")}}
+
Specifies all levels of two-dimensional texture storage.
+
{{domxref("WebGL2RenderingContext.texStorage3D()")}}
+
Specifies all levels of a three-dimensional texture or two-dimensional array texture.
+
{{domxref("WebGL2RenderingContext.texImage3D()")}}
+
Specifies a three-dimensional texture image.
+
{{domxref("WebGL2RenderingContext.texSubImage3D()")}}
+
Specifies a sub-rectangle of the current 3D texture.
+
{{domxref("WebGL2RenderingContext.copyTexSubImage3D()")}}
+
Copies pixels from the current WebGLFramebuffer into an existing 3D texture sub-image.
+
{{domxref("WebGL2RenderingContext.compressedTexImage3D()")}}
+
Specifies a three-dimensional texture image in a compressed format.
+
{{domxref("WebGL2RenderingContext.compressedTexSubImage3D()")}}
+
Specifies a three-dimensional sub-rectangle for a texture image in a compressed format.
+
+ +

程序和着色器

+ +
+
{{domxref("WebGL2RenderingContext.getFragDataLocation()")}}
+
Returns the binding of color numbers to user-defined varying out variables.
+
+ +

Uniforms 和 Attributes

+ +
+
{{domxref("WebGL2RenderingContext.uniform()", "WebGL2RenderingContext.uniform[1234][fiu][v]()")}}
+
指定一个uniform变量。
+
{{domxref("WebGL2RenderingContext.uniformMatrix()", "WebGL2RenderingContext.uniformMatrix[1234][fv]()")}}
+
指定一个uniform矩阵变量。
+
{{domxref("WebGL2RenderingContext.vertexAttribI()", "WebGL2RenderingContext.vertexAttribI[iuv]()")}}
+
Methods specifying integer values for generic vertex attributes.
+
{{domxref("WebGL2RenderingContext.vertexAttribIPointer()")}}
+
Specifies integer data formats and locations of vertex attributes in a vertex attributes array.
+
+ +

绘图缓冲区

+ +
+
{{domxref("WebGL2RenderingContext.vertexAttribDivisor()")}}
+
Modifies the rate at which generic vertex attributes advance when rendering multiple instances of primitives with {{domxref("WebGL2RenderingContext.drawArraysInstanced()", "gl.drawArraysInstanced()")}} and {{domxref("WebGL2RenderingContext.drawElementsInstanced()", "gl.drawElementsInstanced()")}}.
+
{{domxref("WebGL2RenderingContext.drawArraysInstanced()")}}
+
Renders primitives from array data. In addition, it can execute multiple instances of the range of elements.
+
{{domxref("WebGL2RenderingContext.drawElementsInstanced()")}}
+
Renders primitives from array data. In addition, it can execute multiple instances of a set of elements.
+
{{domxref("WebGL2RenderingContext.drawRangeElements()")}}
+
Renders primitives from array data in a given range.
+
{{domxref("WebGL2RenderingContext.drawBuffers()")}}
+
Specifies a list of color buffers to be drawn into.
+
{{domxref("WebGL2RenderingContext.clearBuffer()", "WebGL2RenderingContext.clearBuffer[fiuv]()")}}
+
Clears buffers from the currently bound framebuffer.
+
+ +

查询对象

+ +

Methods for working with {{domxref("WebGLQuery")}} objects.

+ +
+
{{domxref("WebGL2RenderingContext.createQuery()")}}
+
创建一个新的 {{domxref("WebGLQuery")}} 对象.
+
{{domxref("WebGL2RenderingContext.deleteQuery()")}}
+
删除一个指定的 {{domxref("WebGLQuery")}} 对象。
+
{{domxref("WebGL2RenderingContext.isQuery()")}}
+
Returns true if a given object is a valid {{domxref("WebGLQuery")}} object.
+
{{domxref("WebGL2RenderingContext.beginQuery()")}}
+
开始一个异步查询。
+
{{domxref("WebGL2RenderingContext.endQuery()")}}
+
Marks the end of an asynchronous query.
+
{{domxref("WebGL2RenderingContext.getQuery()")}}
+
返回一个指定目标的 {{domxref("WebGLQuery")}} 对象。
+
{{domxref("WebGL2RenderingContext.getQueryParameter()")}}
+
返回关于一个查询的信息。
+
+ +

采样对象

+ +
+
{{domxref("WebGL2RenderingContext.createSampler()")}}
+
Creates a new {{domxref("WebGLSampler")}} object.
+
{{domxref("WebGL2RenderingContext.deleteSampler()")}}
+
Deletes a given {{domxref("WebGLSampler")}} object.
+
{{domxref("WebGL2RenderingContext.bindSampler()")}}
+
Binds a given {{domxref("WebGLSampler")}} to a texture unit.
+
{{domxref("WebGL2RenderingContext.isSampler()")}}
+
Returns true if a given object is a valid {{domxref("WebGLSampler")}} object.
+
{{domxref("WebGL2RenderingContext.samplerParameter()", "WebGL2RenderingContext.samplerParameter[if]()")}}
+
Sets sampler parameters.
+
{{domxref("WebGL2RenderingContext.getSamplerParameter()")}}
+
Returns sampler parameter information.
+
+ +

同步对象

+ +
+
{{domxref("WebGL2RenderingContext.fenceSync()")}}
+
创建一个 {{domxref("WebGLSync")}} 对象并插入到 GL 命令流中。
+
{{domxref("WebGL2RenderingContext.isSync()")}}
+
Returns true if the passed object is a valid {{domxref("WebGLSync")}} object.
+
{{domxref("WebGL2RenderingContext.deleteSync()")}}
+
删除一个指定的 {{domxref("WebGLSync")}} 对象。
+
{{domxref("WebGL2RenderingContext.clientWaitSync()")}}
+
+

Blocks and waits for a {{domxref("WebGLSync")}} object to become signaled or a given timeout to be passed.

+
+
{{domxref("WebGL2RenderingContext.waitSync()")}}
+
Returns immediately, but waits on the GL server until the given {{domxref("WebGLSync")}} object is signaled.
+
{{domxref("WebGL2RenderingContext.getSyncParameter()")}}
+
根据一个 {{domxref("WebGLSync")}} 对象返回参数信息。
+
+ +

变换反馈

+ +
+
{{domxref("WebGL2RenderingContext.createTransformFeedback()")}}
+
创建并初始化 {{domxref("WebGLTransformFeedback")}} 对象。
+
{{domxref("WebGL2RenderingContext.deleteTransformFeedback()")}}
+
删除一个指定的 {{domxref("WebGLTransformFeedback")}} 对象。
+
{{domxref("WebGL2RenderingContext.isTransformFeedback()")}}
+
Returns true if the passed object is a valid {{domxref("WebGLTransformFeedback")}} object.
+
{{domxref("WebGL2RenderingContext.bindTransformFeedback()")}}
+
Binds a passed {{domxref("WebGLTransformFeedback")}} object to the current GL state.
+
{{domxref("WebGL2RenderingContext.beginTransformFeedback()")}}
+
Starts a transform feedback operation.
+
{{domxref("WebGL2RenderingContext.endTransformFeedback()")}}
+
Ends a transform feedback operation.
+
{{domxref("WebGL2RenderingContext.transformFeedbackVaryings()")}}
+
Specifies values to record in {{domxref("WebGLTransformFeedback")}} buffers.
+
{{domxref("WebGL2RenderingContext.getTransformFeedbackVarying()")}}
+
Returns information about varying variables from {{domxref("WebGLTransformFeedback")}} buffers.
+
{{domxref("WebGL2RenderingContext.pauseTransformFeedback()")}}
+
Pauses a transform feedback operation.
+
{{domxref("WebGL2RenderingContext.resumeTransformFeedback()")}}
+
Resumes a transform feedback operation.
+
+ +

Uniform 缓冲对象

+ +
+
{{domxref("WebGL2RenderingContext.bindBufferBase()")}}
+
Binds a given {{domxref("WebGLBuffer")}} to a given binding point (target) at a given index.
+
{{domxref("WebGL2RenderingContext.bindBufferRange()")}}
+
Binds a range of a given {{domxref("WebGLBuffer")}} to a given binding point (target) at a given index.
+
{{domxref("WebGL2RenderingContext.getUniformIndices()")}}
+
+

Retrieves the indices of a number of uniforms within a {{domxref("WebGLProgram")}}.

+
+
{{domxref("WebGL2RenderingContext.getActiveUniforms()")}}
+
Retrieves information about active uniforms within a {{domxref("WebGLProgram")}}.
+
{{domxref("WebGL2RenderingContext.getUniformBlockIndex()")}}
+
Retrieves the index of a uniform block within a {{domxref("WebGLProgram")}}.
+
{{domxref("WebGL2RenderingContext.getActiveUniformBlockParameter()")}}
+
Retrieves information about an active uniform block within a {{domxref("WebGLProgram")}}.
+
{{domxref("WebGL2RenderingContext.getActiveUniformBlockName()")}}
+
Retrieves the name of the active uniform block at a given index within a {{domxref("WebGLProgram")}}.
+
{{domxref("WebGL2RenderingContext.uniformBlockBinding()")}}
+
Assigns binding points for active uniform blocks.
+
+ +

顶点数组对象

+ +

Methods for working with {{domxref("WebGLVertexArrayObject")}} (VAO) objects.

+ +
+
{{domxref("WebGL2RenderingContext.createVertexArray()")}}
+
创建一个新的 {{domxref("WebGLVertexArrayObject")}}。
+
{{domxref("WebGL2RenderingContext.deleteVertexArray()")}}
+
删除一个指定的 {{domxref("WebGLVertexArrayObject")}}。
+
{{domxref("WebGL2RenderingContext.isVertexArray()")}}
+
如果一个指定的 {{domxref("WebGLVertexArrayObject")}} 对象有效则返回 true
+
{{domxref("WebGL2RenderingContext.bindVertexArray()")}}
+
绑定一个指定的 {{domxref("WebGLVertexArrayObject")}} 到缓冲。
+
+ +

规范

+ + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('WebGL2', "#3.7", "WebGL2RenderingContext")}}{{Spec2('WebGL2')}}Initial definition.
+ +

浏览器兼容性

+ + + +

{{Compat("api.WebGL2RenderingContext")}}

+ +

相关链接

+ + diff --git a/files/zh-cn/web/api/webgl2renderingcontext/teximage3d/index.html b/files/zh-cn/web/api/webgl2renderingcontext/teximage3d/index.html new file mode 100644 index 0000000000..97dc1ca928 --- /dev/null +++ b/files/zh-cn/web/api/webgl2renderingcontext/teximage3d/index.html @@ -0,0 +1,174 @@ +--- +title: WebGL2RenderingContext.texImage3D() +slug: Web/API/WebGL2RenderingContext/texImage3D +translation_of: Web/API/WebGL2RenderingContext/texImage3D +--- +
{{APIRef("WebGL")}} {{SeeCompatTable}}
+ +

WebGL APIWebGLRenderingContext.texImage3D()方法指定一个3d(three-dimensional)纹理贴图。

+ +

语法

+ +
void gl.texImage3D(target, level, internalformat, width, height, depth, border, format, type, GLintptr offset);
+
+void gl.texImage3D(target, level, internalformat, width, height, depth, border, format, type, HTMLCanvasElement source);
+void gl.texImage3D(target, level, internalformat, width, height, depth, border, format, type, HTMLImageElement source);
+void gl.texImage3D(target, level, internalformat, width, height, depth, border, format, type, HTMLVideoElement source);
+void gl.texImage3D(target, level, internalformat, width, height, depth, border, format, type, ImageBitmap source);
+void gl.texImage3D(target, level, internalformat, width, height, depth, border, format, type, ImageData source);
+void gl.texImage3D(target, level, internalformat, width, height, depth, border, format, type, ArrayBufferView? srcData);
+void gl.texImage3D(target, level, internalformat, width, height, depth, border, format, type, ArrayBufferView srcData, srcOffset);
+
+ +

参数

+ +
+
target
+
 {{domxref("GLenum")}}指定绑定纹理图像类型。可能值: +
    +
  • gl.TEXTURE_3D: 一个3D贴图
  • +
  • gl.TEXTURE_2D_ARRAY: 一个2D数组贴图
  • +
+
+
level
+
{{domxref("GLint")}}指定细节等级。level0是基础图片等级, n是第n个mipmap纹理衰减等级。(译者注:原文中衰减应该指像素,并且注意,webgl的Mipmapping技术要求顶层图像的行和列的维数均为2的幂)
+
internalformat
+
{{domxref("GLint")}}指定贴图的颜色组成,可能值为: +
    +
  • gl.ALPHA: 忽略红色,绿色,蓝色分量值只读取alpha信息。
  • +
  • gl.RGB: 忽略alpha信息,读取红绿蓝分量
  • +
  • gl.RGBA: 从颜色缓冲(colorBuffer)读取红色,绿色,蓝色和alpha分量
  • +
  • gl.LUMINANCE:每个颜色组件都是亮度组件,alpha值为1.0.
  • +
  • gl.LUMINANCE_ALPHA:每个组件都是亮度/alpha 组件(component) .
  • +
  • gl.R8
  • +
  • gl.R16F
  • +
  • gl.R32F
  • +
  • gl.R8UI
  • +
  • gl.RG8
  • +
  • gl.RG16F
  • +
  • gl.RG32F
  • +
  • gl.RGUI
  • +
  • gl.RGB8
  • +
  • gl.SRGB8
  • +
  • gl.RGB565
  • +
  • gl.R11F_G11F_B10F
  • +
  • gl.RGB9_E5
  • +
  • gl.RGB16F
  • +
  • gl.RGB32F
  • +
  • gl.RGB8UI
  • +
  • gl.RGBA8
  • +
  • gl.SRGB_APLHA8
  • +
  • gl.RGB5_A1
  • +
  • gl.RGBA4444
  • +
  • gl.RGBA16F
  • +
  • gl.RGBA32F
  • +
  • gl.RGBA8UI
  • +
+
+
width
+
 {{domxref("GLsizei")}}指定纹理的宽度
+
height
+
{{domxref("GLsizei")}} 指定纹理的高度
+
depth
+
{{domxref("GLsizei")}} 指定纹理的深度信息
+
border
+
{{domxref("GLint")}}指定边框宽度,必须为0
+
format
+
{{domxref("GLenum")}}制定纹素的版本。正确的 内部格式 组合被列举在 这个列表
+
type
+
A {{domxref("GLenum")}}指定纹素的数据类型,可能值: +
    +
  • gl.UNSIGNED_BYTE: 每个gl.RGBA对应8个字节
  • +
  • gl.UNSIGNED_SHORT_5_6_5: 红色占五个字节,绿色占六个字节,蓝色占五个字节
  • +
  • gl.UNSIGNED_SHORT_4_4_4_4: 红色占四个字节,绿色占 四 个字节,蓝色占 四 个字节
  • +
  • gl.UNSIGNED_SHORT_5_5_5_1:红色占五个字节,绿色占五个字节,蓝色占五个字节,alpha占一个字节
  • +
  • gl.BYTE (这些属性的信息原文中均未提到,但是在webgl1中出现过,可以适当参考webgl1文献)
  • +
  • gl.UNSIGNED_SHORT
  • +
  • gl.SHORT
  • +
  • gl.UNSIGNED_INT
  • +
  • gl.INT
  • +
  • gl.HALF_FLOAT
  • +
  • gl.FLOAT
  • +
  • gl.UNSIGNED_INT_2_10_10_10_REV
  • +
  • gl.UNSIGNED_INT_10F_11F_11F_REV
  • +
  • gl.UNSIGNED_INT_5_9_9_9_REV
  • +
  • gl.UNSIGNED_INT_24_8
  • +
  • gl.FLOAT_32_UNSIGNED_INT_24_8_REV (pixels must be {{jsxref("null")}})
  • +
+
+
source
+
其中一个对象可以用作纹理对象的源:
+
+
    +
  • {{domxref("ArrayBufferView")}},
  • +
  • {{domxref("ImageBitmap")}},
  • +
  • {{domxref("ImageData")}},
  • +
  • {{domxref("HTMLImageElement")}},
  • +
  • {{domxref("HTMLCanvasElement")}},
  • +
  • {{domxref("HTMLVideoElement")}}.
  • +
+
+
offset
+
一个针对于{{domxref("WebGLBuffer")}}所储存数据的{{domxref("GLintptr")}}字节的偏移量。用来重新加载已经用WebGLBuffer绑定到PIXEL_UNPACK_BUFFER的{{domxref("WebGLTexture")}} 。
+
+
    +
+
+
+ +

返回值

+ +

没有

+ +

例子

+ +
gl.texImage3D(gl.TEXTURE_3D,
+              0,                                          // level
+              gl.RGBA,                                    // internalFormat
+              1,                                          // width
+              1,                                          // height
+              1,                                          // depth
+              0,                                          // border
+              gl.RGBA,                                    // format
+              gl.UNSIGNED_BYTE,                           // type
+              new Uint8Array([0xff, 0x00, 0x00, 0x00]));  // data
+
+ +

说明

+ + + + + + + + + + + + + + + + + + + +
说明(Specification )状态(Status)意见(Comment)
{{SpecName('WebGL2', "#3.7.6", "texImage3D")}}{{Spec2('WebGL2')}}Updated definition for WebGL.
{{SpecName('OpenGL ES 3.0', "glTexImage3D.xhtml", "glTexImage3D")}}{{Spec2('OpenGL ES 3.0')}}Man page of the (similar) OpenGL ES 3.0 API.
+ +

浏览器兼容性

+ + + +

{{Compat("api.WebGL2RenderingContext.texImage3D")}}

+ +

另见

+ + diff --git a/files/zh-cn/web/api/webgl2renderingcontext/uniform/index.html b/files/zh-cn/web/api/webgl2renderingcontext/uniform/index.html new file mode 100644 index 0000000000..22b773d4de --- /dev/null +++ b/files/zh-cn/web/api/webgl2renderingcontext/uniform/index.html @@ -0,0 +1,85 @@ +--- +title: 'WebGL2RenderingContext.uniform[1234][uif][v]()' +slug: Web/API/WebGL2RenderingContext/uniform +translation_of: Web/API/WebGL2RenderingContext/uniform +--- +
{{APIRef("WebGL")}} {{SeeCompatTable}}
+ +

 WebGL APIWebGL2RenderingContext.uniform[1234][uif][v]() 方法提供了uniform(es)变量的详细值

+ +
+

ui 意为无符号整数, i 意为整数, f 意为浮点数, 并且 v 意为矢量.
+ 并不是所有的组合都是有效的: u 不能是 f的组合。详见下方语法表格。用 正则表达式概括语法: uniform[1234](u?i|f)v?

+
+ +

语法

+ +
void gl.uniform1ui(location, v0);
+void gl.uniform2ui(location, v0, v1);
+void gl.uniform3ui(location, v0, v1, v2);
+void gl.uniform4ui(location, v0, v1, v2, v3);
+void gl.uniform1fv(location, data, optional srcOffset, optional srcLength);
+void gl.uniform2fv(location, data, optional srcOffset, optional srcLength);
+void gl.uniform3fv(location, data, optional srcOffset, optional srcLength);
+void gl.uniform4fv(location, data, optional srcOffset, optional srcLength);
+void gl.uniform1iv(location, data, optional srcOffset, optional srcLength);
+void gl.uniform2iv(location, data, optional srcOffset, optional srcLength);
+void gl.uniform3iv(location, data, optional srcOffset, optional srcLength);
+void gl.uniform4iv(location, data, optional srcOffset, optional srcLength);
+void gl.uniform1uiv(location, data, optional srcOffset, optional srcLength);
+void gl.uniform2uiv(location, data, optional srcOffset, optional srcLength);
+void gl.uniform3uiv(location, data, optional srcOffset, optional srcLength);
+void gl.uniform4uiv(location, data, optional srcOffset, optional srcLength);
+
+ +

参数

+ +
+
location
+
一个 {{domxref("WebGLUniformLocation")}} 对象包含了本地uniform属性的修改。
+
value, v0, v1, v2, v3
+
一个新的值被应用到uniform变量当中。合理情况: +
    +
  • {{jsxref("Number")}} 如果是无符号整数值 (则用 ui方法),如果是整数值 (则用 i方法), 如果是浮点数(则用f方法).
  • +
  •  {{jsxref("Uint32Array")}} 用于无符号整数向量(矢量)方法 (则用uiv方法).
  • +
+
+
+ +

返回值

+ +

没有返回值

+ +

概述

+ + + + + + + + + + + + + + + + + + + +
详述状态用法(Comment)
{{SpecName('WebGL2', "#3.7.8", "uniform")}}{{Spec2('WebGL2')}}WebGL的初始定义.
{{SpecName('OpenGL ES 3.0', "glUniform.xhtml", "glUniform")}}{{Spec2('OpenGL ES 3.0')}}OpenGL API的手册页(类似).
+ +

浏览器兼容性

+ + + +

{{Compat("api.WebGL2RenderingContext.uniform1ui")}}

+ +

详见

+ + diff --git a/files/zh-cn/web/api/webgl2renderingcontext/uniformmatrix/index.html b/files/zh-cn/web/api/webgl2renderingcontext/uniformmatrix/index.html new file mode 100644 index 0000000000..c541e1200d --- /dev/null +++ b/files/zh-cn/web/api/webgl2renderingcontext/uniformmatrix/index.html @@ -0,0 +1,79 @@ +--- +title: 'WebGL2RenderingContext.uniformMatrix[234]x[234]fv()' +slug: Web/API/WebGL2RenderingContext/uniformMatrix +translation_of: Web/API/WebGL2RenderingContext/uniformMatrix +--- +
{{APIRef("WebGL")}} {{SeeCompatTable}}
+ +
WebGL 2 API WebGL2RenderingContext.uniformMatrix[234]x[234]fv()  方法向uniform变量中传入指定的矩阵值。
+ +
+

这个方法不用 2x2, 3x3, 和 4x4 版本 . 他们通常用2, 3, 和4, 分别表示,详见下方语法。

+
+ +

语法

+ +
void gl.uniformMatrix2fv(location, transpose, data, optional srcOffset, optional srcLength);
+void gl.uniformMatrix3x2fv(location, transpose, data, optional srcOffset, optional srcLength);
+void gl.uniformMatrix4x2fv(location, transpose, data, optional srcOffset, optional srcLength);
+void gl.uniformMatrix2x3fv(location, transpose, data, optional srcOffset, optional srcLength);
+void gl.uniformMatrix3fv(location, transpose, data, optional srcOffset, optional srcLength);
+void gl.uniformMatrix4x3fv(location, transpose, data, optional srcOffset, optional srcLength);
+void gl.uniformMatrix2x4fv(location, transpose, data, optional srcOffset, optional srcLength);
+void gl.uniformMatrix3x4fv(location, transpose, data, optional srcOffset, optional srcLength);
+void gl.uniformMatrix4fv(location, transpose, data, optional srcOffset, optional srcLength);
+
+ +

参数

+ +
+
location
+
一个包含想要修改的uniform变量的{{domxref("WebGLUniformLocation")}} 对象
+
transpose
+
一个决定是否转置矩阵的布尔值( {{domxref("GLboolean")}}。 在webgl中必须为false
+
data
+
一个包含方阵中浮点数的类数组对象(TypeArray) {{jsxref("Float32Array")}}。
+
+ +

返回值

+ +

没有。

+ +

例子

+ +
gl.uniformMatrix2x3fv(loc, false, [1, 2, 3, 4, 5, 6]);
+
+ +

说明

+ + + + + + + + + + + + + + + + + + + +
Specification(规格)Status(状态)Comment(评论)
{{SpecName('WebGL2', "#3.7.8", "uniformMatrix")}}{{Spec2('WebGL2')}}Initial definition for WebGL.
{{SpecName('OpenGL ES 3.0', "glUniform.xhtml", "glUniformMatrix")}}{{Spec2('OpenGL ES 3.0')}}Man page of the (similar) OpenGL API.
+ +

浏览器兼容性

+ + + +

{{Compat("api.WebGL2RenderingContext.uniformMatrix2fv")}}

+ +

令见

+ + -- cgit v1.2.3-54-g00ecf