EXT_float_blend extension

Limited availability

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

Phần mở rộng EXT_float_blend của WebGL API cho phép blending và draw buffers với các thành phần dấu phẩy động 32-bit.

Các phần mở rộng WebGL có sẵn bằng cách sử dụng phương thức WebGLRenderingContext.getExtension().

Note: Phần mở rộng này có sẵn cho cả ngữ cảnh WebGL1WebGL2. Tuy nhiên, để sử dụng nó, bạn cần bật sử dụng draw buffers dấu phẩy động 32-bit bằng cách bật phần mở rộng WEBGL_color_buffer_float (cho WebGL1) hoặc EXT_color_buffer_float (cho WebGL2). Làm như vậy sẽ tự động bật EXT_float_blend nếu EXT_float_blend cũng được hỗ trợ.

Khi phần mở rộng này được bật, việc gọi drawArrays() hoặc drawElements() với blending được bật và draw buffer có các thành phần dấu phẩy động 32-bit sẽ không còn gây ra lỗi INVALID_OPERATION.

Ví dụ

js
const gl = canvas.getContext("webgl2");

// enable necessary extensions
gl.getExtension("EXT_color_buffer_float");
gl.getExtension("EXT_float_blend");

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

// use floating point format
gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA32F, 1, 1, 0, gl.RGBA, gl.FLOAT, null);

const fb = gl.createFramebuffer();
gl.bindFramebuffer(gl.FRAMEBUFFER, fb);
gl.framebufferTexture2D(
  gl.FRAMEBUFFER,
  gl.COLOR_ATTACHMENT0,
  gl.TEXTURE_2D,
  tex,
  0,
);

// enable blending
gl.enable(gl.BLEND);

Thông số kỹ thuật

Specification
WebGL EXT_float_blend Extension Specification

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

Xem thêm