WebGLRenderingContext: renderbufferStorage() 方法

Baseline 已廣泛支援

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

注意:此功能在 Web Workers 中可用。

WebGL API 的 WebGLRenderingContext.renderbufferStorage() 方法建立並初始化渲染緩衝物件的資料儲存。

語法

js
renderbufferStorage(target, internalFormat, width, height)

引數

目標

一個 GLenum,指定目標渲染緩衝區物件。可能的值

gl.RENDERBUFFER

為具有可渲染內部格式的單個影像提供緩衝區資料儲存。

internalFormat

一個 GLenum,指定渲染緩衝的內部格式。可能的值

  • gl.RGBA4:4 位紅色,4 位綠色,4 位藍色,4 位 Alpha。
  • gl.RGB565:5 位紅色,6 位綠色,5 位藍色。
  • gl.RGB5_A1:5 位紅色,5 位綠色,5 位藍色,1 位 Alpha。
  • gl.DEPTH_COMPONENT16:16 位深度。
  • gl.STENCIL_INDEX8:8 位模板。
  • gl.DEPTH_STENCIL

使用 WebGL 2 上下文時,還可以使用以下值:

  • gl.R8
  • gl.R8UI
  • gl.R8I
  • gl.R16UI
  • gl.R16I
  • gl.R32UI
  • gl.R32I
  • gl.RG8
  • gl.RG8UI
  • gl.RG8I
  • gl.RG16UI
  • gl.RG16I
  • gl.RG32UI
  • gl.RG32I
  • gl.RGB8
  • gl.RGBA8
  • gl.SRGB8_ALPHA8(WebGL 1 也可用作擴充套件,參見下文)
  • gl.RGB10_A2
  • gl.RGBA8UI
  • gl.RGBA8I
  • gl.RGB10_A2UI
  • gl.RGBA16UI
  • gl.RGBA16I
  • gl.RGBA32I
  • gl.RGBA32UI
  • gl.DEPTH_COMPONENT24
  • gl.DEPTH_COMPONENT32F
  • gl.DEPTH24_STENCIL8
  • gl.DEPTH32F_STENCIL8

使用 WEBGL_color_buffer_float 擴充套件時

  • ext.RGBA32F_EXT:RGBA 32 位浮點型別。
  • ext.RGB32F_EXT:RGB 32 位浮點型別。

使用 EXT_sRGB 擴充套件時

  • ext.SRGB8_ALPHA8_EXT:8 位 sRGB 和 Alpha。

使用 WebGL 2 contextEXT_color_buffer_float 擴充套件時

  • gl.R16F
  • gl.RG16F
  • gl.RGBA16F
  • gl.R32F
  • gl.RG32F
  • gl.RGBA32F
  • gl.R11F_G11F_B10F
width

一個 GLsizei,指定渲染緩衝的寬度(以畫素為單位)。

height

一個 GLsizei,指定渲染緩衝的高度(以畫素為單位)。

返回值

無(undefined)。

示例

js
gl.renderbufferStorage(gl.RENDERBUFFER, gl.RGBA4, 256, 256);

規範

規範
WebGL 規範
# 5.14.7
WebGL 2.0 規範
# 3.7.5

瀏覽器相容性

另見