WebGLRenderingContext: compressedTexSubImage2D() 方法
基线 广泛可用
此功能已得到充分确立,并在许多设备和浏览器版本中均能正常工作。它自 2015 年 7 月.
报告反馈
**WebGLRenderingContext.compressedTexSubImage2D()
** 是 WebGL API 的一个方法,它指定纹理图像中以压缩格式存储的二维子矩形。
语法
使用此方法之前,必须通过 WebGL 扩展 启用压缩图像格式,或者使用
WebGL2RenderingContext
。// WebGL 1:
compressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, srcData)
// Additionally available in WebGL 2:
compressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, imageSize, offset)
compressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, srcData)
compressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, srcData, srcOffset)
compressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, srcData, srcOffset, srcLengthOverride)
js
参数
-
target
- 一个
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
,指定压缩纹理图像内的水平偏移量。-
yoffset
一个
GLint
,指定压缩纹理图像内的垂直偏移量。-
width
一个
GLsizei
,指定压缩纹理的宽度。-
height
一个
GLsizei
,指定压缩纹理的高度。-
format
- 一个
GLenum
,指定压缩图像格式。使用此方法之前,必须通过 WebGL 扩展 启用压缩图像格式。可能的取值使用
WEBGL_compressed_texture_s3tc
扩展时ext.COMPRESSED_RGB_S3TC_DXT1_EXT
ext.COMPRESSED_RGBA_S3TC_DXT1_EXT
ext.COMPRESSED_RGBA_S3TC_DXT3_EXT
- ext.COMPRESSED_RGBA_S3TC_DXT5_EXT
使用
WEBGL_compressed_texture_s3tc_srgb
扩展时ext.COMPRESSED_SRGB_S3TC_DXT1_EXT
ext.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT
ext.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT
- ext.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT
使用
WEBGL_compressed_texture_etc
扩展时ext.COMPRESSED_R11_EAC
ext.COMPRESSED_SIGNED_R11_EAC
ext.COMPRESSED_RG11_EAC
ext.COMPRESSED_SIGNED_RG11_EAC
ext.COMPRESSED_RGB8_ETC2
ext.COMPRESSED_RGBA8_ETC2_EAC
ext.COMPRESSED_SRGB8_ETC2
ext.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC
ext.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2
- ext.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2
使用
WEBGL_compressed_texture_pvrtc
扩展时ext.COMPRESSED_RGB_PVRTC_4BPPV1_IMG
ext.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG
ext.COMPRESSED_RGB_PVRTC_2BPPV1_IMG
- ext.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG
使用
WEBGL_compressed_texture_astc
扩展时ext.COMPRESSED_RGBA_ASTC_4x4_KHR ext.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR
ext.COMPRESSED_RGBA_ASTC_5x4_KHR ext.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR
ext.COMPRESSED_RGBA_ASTC_5x5_KHR ext.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR
ext.COMPRESSED_RGBA_ASTC_6x5_KHR ext.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR
ext.COMPRESSED_RGBA_ASTC_6x6_KHR ext.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR
ext.COMPRESSED_RGBA_ASTC_8x5_KHR ext.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR
ext.COMPRESSED_RGBA_ASTC_8x6_KHR ext.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR
ext.COMPRESSED_RGBA_ASTC_8x8_KHR ext.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR
ext.COMPRESSED_RGBA_ASTC_10x5_KHR ext.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR
ext.COMPRESSED_RGBA_ASTC_10x5_KHR ext.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR
ext.COMPRESSED_RGBA_ASTC_10x6_KHR ext.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR
ext.COMPRESSED_RGBA_ASTC_10x10_KHR ext.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR
ext.COMPRESSED_RGBA_ASTC_12x10_KHR ext.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR
- ext.COMPRESSED_RGBA_ASTC_12x12_KHR ext.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR
使用
EXT_texture_compression_bptc
扩展时ext.COMPRESSED_RGBA_BPTC_UNORM_EXT
ext.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT
ext.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT
- ext.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT
使用
EXT_texture_compression_rgtc
扩展时ext.COMPRESSED_RED_RGTC1_EXT
ext.COMPRESSED_SIGNED_RED_RGTC1_EXT
ext.COMPRESSED_RED_GREEN_RGTC2_EXT
- 一个
ext.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT
-
imageSize
一个
GLsizei
,指定从绑定到gl.PIXEL_UNPACK_BUFFER
的缓冲区中读取的字节数。-
offset
一个
GLintptr
,指定从绑定到gl.PIXEL_UNPACK_BUFFER
的缓冲区中读取的偏移量(以字节为单位)。-
srcData
一个 TypedArray
或一个 DataView
,用作内存中压缩图像数据的存储。
返回值
示例
使用此方法之前,必须通过 WebGL 扩展 启用压缩图像格式,或者使用
WebGL2RenderingContext
。const ext =
gl.getExtension("WEBGL_compressed_texture_s3tc") ||
gl.getExtension("MOZ_WEBGL_compressed_texture_s3tc") ||
gl.getExtension("WEBKIT_WEBGL_compressed_texture_s3tc");
gl.compressedTexSubImage2D(
gl.TEXTURE_2D,
0,
256,
256,
512,
512,
ext.COMPRESSED_RGBA_S3TC_DXT5_EXT,
textureData,
);
规范
无 (undefined )。 |
---|
规范 # WebGL 规范 |
浏览器兼容性
COMPRESSEDTEXSUBIMAGE2D
另请参阅
- 启用 JavaScript 后。启用 JavaScript 以查看数据。
使用 WebGL 扩展
WebGLRenderingContext.getExtension()
WEBGL_compressed_texture_s3tc
WEBGL_compressed_texture_s3tc_srgb
WebGLRenderingContext.compressedTexImage2D()
WEBGL_compressed_texture_pvrtc
WEBGL_compressed_texture_astc
EXT_texture_compression_bptc
EXT_texture_compression_rgtc