WebGL2RenderingContext: compressedTexImage3D() 方法

基线 广泛可用

此功能已得到良好建立,并在许多设备和浏览器版本中运行。它自 2021 年 9 月.

报告反馈

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
  • 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 规范

另请参阅