WebGL2RenderingContext: texSubImage3D() 方法
WebGL2RenderingContext.texSubImage3D()
方法是 WebGL API 的一个方法,用于指定当前纹理的子矩形。
语法
js
texSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels)
texSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, offset)
texSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, srcData)
texSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, srcData, srcOffset)
参数
target
-
一个
GLenum
,指定活动纹理的绑定点(目标)。可能的值gl.TEXTURE_3D
: 三维纹理。gl.TEXTURE_2D_ARRAY
: 二维数组纹理。
level
-
一个
GLint
,指定细节级别。级别 0 是基本图像级别,级别 n 是第 n 个 mipmap 缩减级别。 xoffset
-
一个
GLint
,指定纹理图像内的 x 偏移量。 yoffset
-
一个
GLint
,指定纹理图像内的 y 偏移量。 zoffset
-
一个
GLint
,指定纹理图像内的 z 偏移量。 width
-
一个
GLsizei
,指定纹理的宽度。 height
-
一个
GLsizei
,指定纹理的高度。 depth
-
一个
GLsizei
,指定纹理的深度。 format
-
一个
GLenum
,指定纹理数据的格式。可能的值-
gl.ALPHA
: 丢弃红色、绿色和蓝色分量,读取 alpha 分量。 -
gl.RGB
: 丢弃 alpha 分量,读取红色、绿色和蓝色分量。 -
gl.RGBA
: 从颜色缓冲区读取红色、绿色、蓝色和 alpha 分量。 -
gl.LUMINANCE
: 每个颜色分量都是亮度分量,alpha 为 1.0。 gl.LUMINANCE_ALPHA
: 每个分量都是亮度/alpha 分量。gl.R8
gl.R16F
gl.R32F
gl.R8UI
gl.RG8
gl.RG16F
gl.RG32F
gl.RGUI
gl.RGB8
gl.SRGB8
gl.RGB565
gl.R11F_G11F_B10F
gl.RGB9_E5
gl.RGB16F
gl.RGB32F
gl.RGB8UI
gl.RGBA8
gl.SRGB_ALPHA8
gl.RGB5_A1
gl.RGBA4444
gl.RGBA16F
gl.RGBA32F
gl.RGBA8UI
-
type
-
一个
GLenum
,指定纹理数据的类型。可能的值gl.UNSIGNED_BYTE
:gl.RGBA
的每个通道 8 位。gl.UNSIGNED_SHORT_5_6_5
: 5 位红色,6 位绿色,5 位蓝色。-
gl.UNSIGNED_SHORT_4_4_4_4
: 4 位红色,4 位绿色,4 位蓝色,4 位 alpha。 -
gl.UNSIGNED_SHORT_5_5_5_1
: 5 位红色,5 位绿色,5 位蓝色,1 位 alpha。 gl.BYTE
gl.UNSIGNED_SHORT
gl.SHORT
gl.UNSIGNED_INT
gl.INT
gl.HALF_FLOAT
gl.FLOAT
gl.UNSIGNED_INT_2_10_10_10_REV
gl.UNSIGNED_INT_10F_11F_11F_REV
gl.UNSIGNED_INT_5_9_9_9_REV
gl.UNSIGNED_INT_24_8
-
gl.FLOAT_32_UNSIGNED_INT_24_8_REV
(像素必须是null
)
pixels
-
以下对象之一可用作纹理的像素源
Uint8Array
(如果type
为gl.UNSIGNED_BYTE
,则必须使用)-
Uint16Array
(如果type
为gl.UNSIGNED_SHORT_5_6_5
、gl.UNSIGNED_SHORT_4_4_4_4
、gl.UNSIGNED_SHORT_5_5_5_1
或ext.HALF_FLOAT_OES
,则必须使用) Float32Array
(如果type
为gl.FLOAT
,则必须使用)ImageBitmap
ImageData
HTMLImageElement
HTMLCanvasElement
HTMLVideoElement
srcData
-
一个
TypedArray
或一个DataView
对象。 offset
-
一个
GLintptr
字节偏移量,指向WebGLBuffer
的数据存储区。用于将数据从绑定到PIXEL_UNPACK_BUFFER
目标的WebGLBuffer
上传到当前绑定的WebGLTexture
。
返回值
无 (undefined
).
示例
js
gl.texSubImage3D(
gl.TEXTURE_3D,
0,
0,
0,
0,
image.width,
image.height,
1,
gl.RGBA,
gl.UNSIGNED_BYTE,
image,
);
规范
规范 |
---|
WebGL 2.0 规范 # 3.7.6 |
浏览器兼容性
BCD 表格仅在浏览器中加载