Tiện ích WEBGL_compressed_texture_s3tc

Khả dụng hạn chế

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Tiện ích WEBGL_compressed_texture_s3tc là một phần của WebGL API và cung cấp bốn định dạng texture nén S3TC.

Texture nén giúp giảm dung lượng bộ nhớ cần thiết để lưu trữ texture trên GPU, cho phép sử dụng texture có độ phân giải cao hơn hoặc nhiều texture hơn với cùng độ phân giải.

Các tiện ích WebGL có thể dùng bằng phương thức WebGLRenderingContext.getExtension(). Để biết thêm thông tin, xem Using Extensions trong hướng dẫn WebGL.

Note: Tiện ích này khả dụng với cả ngữ cảnh WebGL1WebGL2.

Hằng số

Các định dạng texture nén được cung cấp bởi bốn hằng số và có thể được dùng trong hai hàm: compressedTexImage2D()compressedTexSubImage2D().

ext.COMPRESSED_RGB_S3TC_DXT1_EXT

Ảnh nén DXT1 ở định dạng ảnh RGB.

ext.COMPRESSED_RGBA_S3TC_DXT1_EXT

Ảnh nén DXT1 ở định dạng ảnh RGB với giá trị alpha bật/tắt.

ext.COMPRESSED_RGBA_S3TC_DXT3_EXT

Ảnh nén DXT3 ở định dạng ảnh RGBA. So với texture RGBA 32-bit, cung cấp nén 4:1.

ext.COMPRESSED_RGBA_S3TC_DXT5_EXT

Ảnh nén DXT5 ở định dạng ảnh RGBA. Cũng cung cấp nén 4:1, nhưng khác với nén DXT3 ở cách nén alpha.

Ví dụ

js
const ext =
  gl.getExtension("WEBGL_compressed_texture_s3tc") ||
  gl.getExtension("MOZ_WEBGL_compressed_texture_s3tc") ||
  gl.getExtension("WEBKIT_WEBGL_compressed_texture_s3tc");

const texture = gl.createTexture();
gl.bindTexture(gl.TEXTURE_2D, texture);

gl.compressedTexImage2D(
  gl.TEXTURE_2D,
  0,
  ext.COMPRESSED_RGBA_S3TC_DXT5_EXT,
  512,
  512,
  0,
  textureData,
);

gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);

Thông số kỹ thuật

Thông số kỹ thuật
WebGL WEBGL_compressed_texture_s3tc Khronos Ratified Extension Specification

Tương thích trình duyệt

Xem thêm