WebGLRenderingContext: framebufferTexture2D() 方法
注意:此功能在 Web Workers 中可用。
WebGLRenderingContext.framebufferTexture2D() 方法是 WebGL API 的一部分,用于将纹理附加到 WebGLFramebuffer。
语法
js
framebufferTexture2D(target, attachment, textarget, texture, level)
参数
目标-
一个
GLenum,指定绑定点(目标)。可能的值gl.FRAMEBUFFER-
用于渲染图像的颜色、Alpha、深度和模板缓冲区的集合缓冲区数据存储。
使用 WebGL 2 上下文时,还可以使用以下值:
gl.DRAW_FRAMEBUFFER-
用作绘制、渲染、清除和写入操作的目标。
gl.READ_FRAMEBUFFER-
用作读取操作的源。
绑定时,
gl.FRAMEBUFFER会同时设置gl.DRAW_FRAMEBUFFER和gl.READ_FRAMEBUFFER绑定点。引用时,gl.FRAMEBUFFER指的是gl.DRAW_FRAMEBUFFER绑定。 attachment-
一个
GLenum,指定texture的附件点。可能的值gl.COLOR_ATTACHMENT0: 将纹理附加到帧缓冲区的颜色缓冲区。gl.DEPTH_ATTACHMENT: 将纹理附加到帧缓冲区的深度缓冲区。gl.STENCIL_ATTACHMENT: 将纹理附加到帧缓冲区的模板缓冲区。
使用 WebGL 2 上下文时,还可以使用以下值:
gl.DEPTH_STENCIL_ATTACHMENT: 深度和模板缓冲区。gl.COLOR_ATTACHMENT1 gl.COLOR_ATTACHMENT2 gl.COLOR_ATTACHMENT3 gl.COLOR_ATTACHMENT4 gl.COLOR_ATTACHMENT5 gl.COLOR_ATTACHMENT6 gl.COLOR_ATTACHMENT7 gl.COLOR_ATTACHMENT8 gl.COLOR_ATTACHMENT9 gl.COLOR_ATTACHMENT10 gl.COLOR_ATTACHMENT11 gl.COLOR_ATTACHMENT12 gl.COLOR_ATTACHMENT13 gl.COLOR_ATTACHMENT14 gl.COLOR_ATTACHMENT15
使用
WEBGL_draw_buffers扩展时ext.COLOR_ATTACHMENT0_WEBGL(与gl.COLOR_ATTACHMENT0相同)ext.COLOR_ATTACHMENT1_WEBGL ext.COLOR_ATTACHMENT2_WEBGL ext.COLOR_ATTACHMENT3_WEBGL ext.COLOR_ATTACHMENT4_WEBGL ext.COLOR_ATTACHMENT5_WEBGL ext.COLOR_ATTACHMENT6_WEBGL ext.COLOR_ATTACHMENT7_WEBGL ext.COLOR_ATTACHMENT8_WEBGL ext.COLOR_ATTACHMENT9_WEBGL ext.COLOR_ATTACHMENT10_WEBGL ext.COLOR_ATTACHMENT11_WEBGL ext.COLOR_ATTACHMENT12_WEBGL ext.COLOR_ATTACHMENT13_WEBGL ext.COLOR_ATTACHMENT14_WEBGL ext.COLOR_ATTACHMENT15_WEBGL
使用
WEBGL_depth_texture扩展时gl.DEPTH_STENCIL_ATTACHMENT: 深度和模板缓冲区数据存储。
textarget-
一个
GLenum,指定纹理目标。可能的值gl.TEXTURE_2D: 2D 图像。gl.TEXTURE_CUBE_MAP_POSITIVE_X: 立方体正面 X 轴的图像。gl.TEXTURE_CUBE_MAP_NEGATIVE_X: 立方体负面 X 轴的图像。gl.TEXTURE_CUBE_MAP_POSITIVE_Y: 立方体正面 Y 轴的图像。gl.TEXTURE_CUBE_MAP_NEGATIVE_Y: 立方体负面 Y 轴的图像。gl.TEXTURE_CUBE_MAP_POSITIVE_Z: 立方体正面 Z 轴的图像。gl.TEXTURE_CUBE_MAP_NEGATIVE_Z: 立方体负面 Z 轴的图像。
texture-
一个
WebGLTexture对象,包含要附加的图像。 level-
一个
GLint,指定要附加的纹理图像的 mipmap 级别。必须为 0。
返回值
无(undefined)。
异常
-
如果以下情况成立,则会抛出
gl.INVALID_ENUM错误:target不是gl.FRAMEBUFFER。attachment不是可接受的附件点之一。textarget不是可接受的纹理目标之一。
-
如果
level不是 0,则会抛出gl.INVALID_VALUE错误。 -
如果
texture不是 0 或现有纹理对象的名称,则会抛出gl.INVALID_OPERATION错误。
示例
js
gl.framebufferTexture2D(
gl.FRAMEBUFFER,
gl.COLOR_ATTACHMENT0,
gl.TEXTURE_2D,
texture,
0,
);
规范
| 规范 |
|---|
| WebGL 规范 # 5.14.6 |
浏览器兼容性
加载中…