WebGL2RenderingContext: compressedTexImage3D() 方法
报告反馈
compressedTexImage3D()
方法是 WebGL2RenderingContext
接口(WebGL API 的一部分)的方法,用于指定以压缩格式的三维纹理图像。
语法
在使用这些方法之前,必须通过 WebGL 扩展 启用压缩图像格式。
// read from buffer bound to gl.PIXEL_UNPACK_BUFFER
compressedTexImage3D(target, level, internalformat, width, height, depth, border, imageSize, offset)
compressedTexImage3D(target, level, internalformat, width, height, depth, border, srcData)
compressedTexImage3D(target, level, internalformat, width, height, depth, border, srcData, srcOffset)
compressedTexImage3D(target, level, internalformat, width, height, depth, border, srcData, srcOffset, srcLengthOverride)
js
参数
-
target
一个
GLenum
,指定活动纹理的绑定点(目标)。对于compressedTexImage3D
的可能值:gl.TEXTURE_2D_ARRAY
gl.TEXTURE_3D
-
level
一个
GLint
,指定详细程度。级别 0 是基本图像级别,级别 n 是第 n 个 mipmap 缩减级别。-
internalformat
- 一个
GLenum
,指定压缩图像格式。在使用此方法之前,必须通过 WebGL 扩展 启用压缩图像格式。有关哪些格式对compressedTexImage3D
有效,请参阅 压缩纹理格式。可能的值:使用
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
- ext.COMPRESSED_RGB_ETC1_WEBGL
使用
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_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
-
width
一个
GLsizei
,指定纹理的宽度。-
height
一个
GLsizei
,指定纹理的高度。-
depth
一个
GLsizei
,指定纹理的深度/TEXTURE_2D_ARRAY
中纹理的数量。-
border
一个
GLint
,指定边框的宽度。必须为 0。-
imageSize
一个
GLsizei
,指定从绑定到gl.PIXEL_UNPACK_BUFFER
的缓冲区读取的字节数。-
offset
一个 GLintptr
,指定从绑定到 gl.PIXEL_UNPACK_BUFFER
的缓冲区读取的偏移量(以字节为单位)。
返回值
规范
无(undefined )。 |
---|
规范 # 3.7.6 |
浏览器兼容性
WebGL 2.0 规范
另请参阅
- 使用 WebGL 扩展
WebGL2RenderingContext.compressedTexSubImage3D()
WebGLRenderingContext.compressedTexSubImage2D()
WebGLRenderingContext.compressedTexImage2D()
WEBGL_compressed_texture_s3tc
WEBGL_compressed_texture_s3tc_srgb
WEBGL_compressed_texture_etc
WEBGL_compressed_texture_pvrtc
WEBGL_compressed_texture_etc1
WEBGL_compressed_texture_astc
EXT_texture_compression_bptc
EXT_texture_compression_rgtc