WebGLRenderingContext: framebufferTexture2D() 方法

基线 广泛可用

此功能已稳定,可在许多设备和浏览器版本中使用。它从以下时间起在浏览器中可用: 2015 年 7 月.

WebGLRenderingContext.framebufferTexture2D() 方法是 WebGL API 的一部分,用于将纹理附加到 WebGLFramebuffer

语法

js
framebufferTexture2D(target, attachment, textarget, texture, level)

参数

target

指定绑定点(目标)的 GLenum。可能的值

gl.FRAMEBUFFER

用于渲染图像的颜色、alpha、深度和模板缓冲区的集合缓冲区数据存储。

当使用 WebGL 2 上下文 时,以下值也可用

gl.DRAW_FRAMEBUFFER

用作绘制、渲染、清除和写入操作的目标。

gl.READ_FRAMEBUFFER

用作读取操作的源。

绑定时,gl.FRAMEBUFFER 会同时设置 gl.DRAW_FRAMEBUFFERgl.READ_FRAMEBUFFER 绑定点。引用时,gl.FRAMEBUFFER 指的是 gl.DRAW_FRAMEBUFFER 绑定。

attachment

指定 texture 的附加点的 GLenum。可能的值

  • 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:二维图像。
  • 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

指定要附加的纹理图像的 mipmap 级别 GLint。必须为 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

浏览器兼容性

BCD 表格仅在启用 JavaScript 的浏览器中加载。

另请参阅