EXT_float_blend - Web API 接口参考 编辑

WebGL APIEXT_float_blend 扩展允许使用 32 位浮点数组件来混合和绘制缓冲区。

若要查询该扩展是否存在,可以用方法:WebGLRenderingContext.getExtension()。更多信息可以参考 WebGL tutorial 中的 Using Extensions

可用性:该扩展在 WebGL1WebGL2 上下文中均存在。但是,要使用它,你需要启用对32位浮点绘制缓冲区的使用WEBGL_color_buffer_float(for WebGL1)或 EXT_color_buffer_float(WebGL2)。通过启用32位浮点缓冲区扩展,将自动启用EXT_float_blend

该组件启用后, 使用 32 位浮点数混合方式绘制,调用 drawArrays()drawElements() 时,将不再产生 INVALID_OPERATION 异常。

使用说明

在支持 EXT_float_blend 扩展的设备上, 当以下几种有一种或几种扩展启用时EXT_color_buffer_float, OES_texture_float, 或 WEBGL_color_buffer_float,该扩展将会自动、隐式的启用。 这确保了在该扩展定义之前的内容也都能够按照预期正确执行。

例子

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);

gl.drawArrays(gl.POINTS, 0, 1);
// won't throw gl.INVALID_OPERATION with the extension enabled

规范

规范状态
EXT_float_blendDraft

浏览器兼容性

BCD tables only load in the browser

The compatibility table on 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.

其它参考

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

词条统计

浏览:93 次

字数:4727

最后编辑:6 年前

编辑次数:0 次

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文