WebGLRenderingContext: texSubImage2D() 方法

可用性有限

此特性不是基線特性,因為它在一些最廣泛使用的瀏覽器中不起作用。

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

texSubImage2D()WebGL APIWebGLRenderingContext 介面的一個方法,用於指定紋理影像的二維子矩形。

語法

js
// WebGL 1:
texSubImage2D(target, level, xoffset, yoffset, width, height, format, type, srcData)
texSubImage2D(target, level, xoffset, yoffset, format, type, source)

// Additionally available in WebGL 2:
texSubImage2D(target, level, xoffset, yoffset, width, height, format, type, srcData, srcOffset)
texSubImage2D(target, level, xoffset, yoffset, width, height, format, type, source)
texSubImage2D(target, level, xoffset, yoffset, width, height, format, type, offset)

引數

目標

一個 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 面。
level

一個 GLint,指定細節級別。級別 0 是基本影像級別,級別 n 是第 n 個 mipmap 縮減級別。

xoffset

一個 GLint,指定紋理陣列中寬度為 width、高度為 height 的矩形子區域的左下角紋素 x 座標。

yoffset

一個 GLint,指定紋理陣列中寬度為 width、高度為 height 的矩形子區域的左下角紋素 y 座標。

width

一個 GLsizei,指定紋理的寬度(以 texel 為單位)。

height

一個 GLsizei,指定紋理的高度(以 texel 為單位)。

格式(format)

一個 GLenum,指定原始紋素資料中每個整數元素應如何解釋為顏色分量。可能的值有:

  • gl.ALPHA: 丟棄紅色、綠色和藍色分量,讀取 alpha 分量。
  • gl.RGB: 丟棄 alpha 分量,讀取紅色、綠色和藍色分量。
  • gl.RGBA: 從顏色緩衝區讀取紅色、綠色、藍色和 alpha 分量。
  • gl.LUMINANCE: 每個顏色分量都是一個亮度分量,alpha 為 1.0。
  • gl.LUMINANCE_ALPHA: 每個分量都是一個亮度/alpha 分量。

使用 EXT_sRGB 擴充套件時

  • ext.SRGB_EXT
  • ext.SRGB_ALPHA_EXT

當使用 WebGL2RenderingContext 時,還可以使用以下值:

  • gl.RED
  • gl.RED_INTEGER
  • gl.RG
  • gl.RG_INTEGER
  • gl.RGB_INTEGER
  • gl.RGBA_INTEGER
  • gl.DEPTH_COMPONENT
  • gl.DEPTH_STENCIL
type

一個 GLenum,指定原始紋素資料中每個整數元素的大小。有關可用的 formattype 組合,請參閱 WebGLRenderingContext.texImage2D()

紋理源可以透過以下三種方式之一提供:使用 srcDatasrcOffset 從(可能共享的)ArrayBuffer 獲取;從 DOM 畫素 source 獲取;或者,在 WebGL 2 中,從 gl.PIXEL_UNPACK_BUFFER 使用 offset 獲取。

srcData

包含壓縮紋理資料的 TypedArrayDataView。其型別必須與 type 引數匹配;請參閱 WebGLRenderingContext.texImage2D()

srcOffset 可選

(僅限 WebGL 2)一個整數,指定 srcData 開始讀取的索引。預設為 0

source

從 DOM 畫素源讀取,它可以是以下之一:

在 WebGL 1 中,widthheight 始終從源推斷。在 WebGL 2 中,也可以顯式指定它們。

offset

(僅限 WebGL 2)一個 GLintptr,指定繫結到 gl.PIXEL_UNPACK_BUFFER 的緩衝區中的起始地址。

返回值

無(undefined)。

示例

js
gl.texSubImage2D(gl.TEXTURE_2D, 0, 0, 0, gl.RGBA, gl.UNSIGNED_BYTE, image);

規範

規範
WebGL 規範
# TEXSUBIMAGE2D
WebGL 2.0 規範
# 3.7.6

瀏覽器相容性

另見