WEBGL_compressed_texture_etc
扩展属于
WebGL API
and exposes 10
ETC/EAC compressed texture formats
.
Compressed textures reduce the amount of memory needed to store a texture on the GPU, allowing for higher resolution textures or more of the same resolution textures.
WebGL extensions are available using the
WebGLRenderingContext.getExtension()
method. For more information, see also
使用扩展
在
WebGL 教程
.
可用性: This extension is available to both, WebGL1 and WebGL2 上下文。
The compressed texture formats are exposed by 10 constants and can be used in two functions:
compressedTexImage2D()
and
compressedTexSubImage2D()
.
ext.COMPRESSED_R11_EAC
One-channel (red) unsigned format compression.
ext.COMPRESSED_SIGNED_R11_EAC
One-channel (red) signed format compression.
ext.COMPRESSED_RG11_EAC
Two-channel (red and green) unsigned format compression.
ext.COMPRESSED_SIGNED_RG11_EAC
Two-channel (red and green) signed format compression.
ext.COMPRESSED_RGB8_ETC2
Compresses RGB8 data with no alpha channel.
ext.COMPRESSED_RGBA8_ETC2_EAC
RGB_ETC2
, but the alpha part is encoded separately.
ext.COMPRESSED_SRGB8_ETC2
Compresses sRGB8 data with no alpha channel.
ext.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC
SRGB_ETC2
, but the alpha part is encoded separately.
ext.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2
RGB8_ETC
, but with ability to punch through the alpha channel, which means to make it completely opaque or transparent.
ext.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2
SRGB8_ETC
, but with ability to punch through the alpha channel, which means to make it completely opaque or transparent.
var ext = gl.getExtension('WEBGL_compressed_texture_etc');
var texture = gl.createTexture();
gl.bindTexture(gl.TEXTURE_2D, texture);
gl.compressedTexImage2D(gl.TEXTURE_2D, 0, ext.COMPRESSED_RGBA8_ETC2_EAC, 512, 512, 0, textureData);
| 规范 | 状态 | 注释 |
|---|---|---|
|
WEBGL_compressed_texture_etc
The definition of 'WEBGL_compressed_texture_etc' in that specification. |
草案 | 初始定义。 |
The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.
更新 GitHub 上的兼容性数据| 桌面 | 移动 | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
WEBGL_compressed_texture_etc
|
Chrome Yes | Edge 79 | Firefox 51 | IE ? | Opera Yes | Safari ? | WebView Android Yes | Chrome Android Yes | Firefox Android ? | Opera Android Yes | Safari iOS ? | Samsung Internet Android Yes |
完整支持
兼容性未知
WEBGL_compressed_texture_es3
from Firefox 46 to Firefox 51 and used to be available on the WebGL 2 context by default – this is not the case anymore. You have to enable it on both, WebGL 1 and WebGL 2 contexts, in order to use it.
WEBGL_compressed_texture_etc1
(ETC1)
WebGLRenderingContext.getExtension()
WebGLRenderingContext.compressedTexImage2D()
WebGLRenderingContext.compressedTexSubImage2D()
WebGLRenderingContext.getParameter()
WEBGL_compressed_texture_etc
ANGLE_instanced_arrays
EXT_blend_minmax
EXT_color_buffer_half_float
EXT_disjoint_timer_query
EXT_frag_depth
EXT_sRGB
EXT_shader_texture_lod
EXT_texture_filter_anisotropic
OES_element_index_uint
OES_standard_derivatives
OES_texture_float
OES_texture_float_linear
OES_texture_half_float
OES_texture_half_float_linear
OES_vertex_array_object
WEBGL_color_buffer_float
WEBGL_compressed_texture_atc
WEBGL_compressed_texture_etc1
WEBGL_compressed_texture_pvrtc
WEBGL_compressed_texture_s3tc
WEBGL_compressed_texture_s3tc_srgb
WEBGL_debug_renderer_info
WEBGL_debug_shaders
WEBGL_depth_texture
WEBGL_draw_buffers
WEBGL_lose_context
WebGL2RenderingContext
WebGLActiveInfo
WebGLBuffer
WebGLContextEvent
WebGLFramebuffer
WebGLObject
WebGLProgram
WebGLQuery
WebGLRenderbuffer
WebGLRenderingContext
WebGLSampler
WebGLShader
WebGLShaderPrecisionFormat
WebGLSync
WebGLTexture
WebGLTransformFeedback
WebGLUniformLocation
WebGLVertexArrayObject