WebGLRenderingContext: framebufferTexture2D() 方法

Baseline 已廣泛支援

此特性已相當成熟,可在許多裝置和瀏覽器版本上使用。自 ⁨2015 年 7 月⁩以來,各瀏覽器均已提供此特性。

注意:此功能在 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_FRAMEBUFFERgl.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

瀏覽器相容性

另見