Spec-Zone.ru › Web APIs

Расширение EXT_float_blend

Ограниченная доступность

Эта функция не относится к Базовым, поскольку она не работает в некоторых из наиболее широко используемых браузеров.

  • Узнать больше
  • Полная совместимость
  • Отправить отзыв

Расширение API WebGL EXT_float_blend позволяет смешивать и отображать буферы с 32-битными компонентами с плавающей точкой.

Расширения WebGL доступны с помощью метода WebGLRenderingContext.getExtension(). Дополнительную информацию см. также в разделе Использование расширений в учебнике по WebGL.

Примечание: Это расширение доступно для контекстов WebGL1 и WebGL2. Однако для его использования необходимо включить использование 32-битных буферов отображения с плавающей точкой, включив расширение WEBGL_color_buffer_float (для WebGL1) или EXT_color_buffer_float (для WebGL2). Это автоматически включает EXT_float_blend, если и только если EXT_float_blend также поддерживается. Поддержка EXT_color_buffer_float не подразумевает поддержку EXT_float_blend.

После включения этого расширения вызов drawArrays() или drawElements() с включённым смешиванием и буфером отображения с 32-битными компонентами с плавающей точкой больше не приведет к ошибке INVALID_OPERATION.

Примечания по использованию

На устройствах, поддерживающих расширение EXT_float_blend , оно автоматически и неявно включается при включении одного или нескольких расширений EXT_color_buffer_float, OES_texture_float или WEBGL_color_buffer_float. Это гарантирует, что содержимое, написанное до того, как EXT_float_blend было представлено WebGL, будет работать как ожидалось.

Примеры

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

Спецификации

Спецификация
Спецификация расширения WebGL EXT_float_blend

Совместимость с браузерами

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
EXT_float_blend 75 79 67 64 14.1
75До Chrome 77 это расширение было недоступно на некоторых устройствах Android с GLES 3.2. См. ошибку 41459397.
67 54 15–16 11.0 75

См. также

  • WebGL API
  • Использование расширений WebGL
  • Учебник по WebGL
  • WebGLRenderingContext.getExtension()
  • EXT_color_buffer_float
  • WEBGL_color_buffer_float
  • WebGLRenderingContext.drawArrays()
  • WebGLRenderingContext.drawElements()

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/EXT_float_blend

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API