EXT_color_buffer_half_float-Erweiterung

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2020.

Die EXT_color_buffer_half_float-Erweiterung ist Teil der WebGL API und fügt die Möglichkeit hinzu, auf 16-Bit-Float-Farbpuffer zu rendern.

WebGL-Erweiterungen sind über die Methode WebGLRenderingContext.getExtension() verfügbar. Für weitere Informationen siehe auch Verwendung von Erweiterungen im WebGL-Leitfaden.

Hinweis: Diese Erweiterung ist in beiden Kontexten verfügbar, sowohl WebGL1 als auch WebGL2. Unter WebGL 2 ist sie eine Alternative zur Verwendung der EXT_color_buffer_float-Erweiterung auf Plattformen, die 16-Bit-Float-Renderziele unterstützen, aber keine 32-Bit-Float-Renderziele.

Die OES_texture_half_float-Erweiterung aktiviert implizit diese Erweiterung.

Konstanten

ext.RGBA16F_EXT

RGBA 16-Bit-Float-Farb-renderbares Format.

ext.RGB16F_EXT

RGB 16-Bit-Float-Format. In WebGL 1.0 kann dies farb-renderbar sein (implementierungsabhängig). In WebGL 2.0 ist dieses Format nicht farb-renderbar.

ext.FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT

Wird an WebGLRenderingContext.getFramebufferAttachmentParameter() übergeben, um den Framebuffer-Typ zu erhalten.

ext.UNSIGNED_NORMALIZED_EXT

Der Framebuffer enthält unbezeichnete Festkomma-Komponenten.

Erweiterte Methoden

Diese Erweiterung erweitert WebGLRenderingContext.renderbufferStorage():

  • In WebGL 1.0-Kontexten akzeptiert der internalFormat-Parameter jetzt ext.RGBA16F_EXT und ext.RGB16F_EXT. Die Unterstützung von ext.RGB16F_EXT ist jedoch optional und Anwendungen müssen die Vollständigkeit des Framebuffers überprüfen, um festzustellen, ob es unterstützt wird.
  • In WebGL 2.0-Kontexten akzeptiert der internalFormat-Parameter jetzt ext.RGBA16F_EXT. Das RGB16F-Format ist in WebGL 2.0 nicht farb-renderbar.

Sie erweitert WebGLRenderingContext.getFramebufferAttachmentParameter():

  • In WebGL 1.0-Kontexten akzeptiert der pname-Parameter jetzt ext.FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT. Ein INVALID_OPERATION-Fehler wird erzeugt, wenn attachment DEPTH_STENCIL_ATTACHMENT ist und pname FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT. Wenn pname ext.FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT ist, gibt getFramebufferAttachmentParameter() entweder gl.FLOAT oder gl.UNSIGNED_NORMALIZED_EXT für Float- oder unbezeichnete Festkomma-Komponenten zurück.

Beispiele

js
const ext = gl.getExtension("EXT_color_buffer_half_float");

gl.renderbufferStorage(gl.RENDERBUFFER, ext.RGBA16F_EXT, 256, 256);

Spezifikationen

Specification
WebGL EXT_color_buffer_half_float Extension Specification

Browser-Kompatibilität

Siehe auch