EXT_color_buffer_half_float extension
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.
The EXT_color_buffer_half_float
extension is part of the WebGL API and adds the ability to render to 16-bit floating-point color buffers.
WebGL extensions are available using the WebGLRenderingContext.getExtension()
method. For more information, see also Using Extensions in the WebGL tutorial.
Note:
This extension is available to both, WebGL1 and WebGL2 contexts. On WebGL 2, it's an alternative to using the EXT_color_buffer_float
extension on platforms that support 16-bit floating point render targets but not 32-bit floating point render targets.
The OES_texture_half_float
extension implicitly enables this extension.
Constants
ext.RGBA16F_EXT
-
RGBA 16-bit floating-point color-renderable format.
ext.RGB16F_EXT
-
RGB 16-bit floating-point format. In WebGL 1.0, this may be color-renderable (implementation-dependent). In WebGL 2.0, this format is not color-renderable.
ext.FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT
-
Passed to
WebGLRenderingContext.getFramebufferAttachmentParameter()
to get the framebuffer type. ext.UNSIGNED_NORMALIZED_EXT
-
The framebuffer contains unsigned fixed-point components.
Extended methods
This extension extends WebGLRenderingContext.renderbufferStorage()
:
- In WebGL 1.0 contexts, the
internalFormat
parameter now acceptsext.RGBA16F_EXT
andext.RGB16F_EXT
. However,ext.RGB16F_EXT
support is optional and applications must check framebuffer completeness to determine if it's supported. - In WebGL 2.0 contexts, the
internalFormat
parameter now acceptsext.RGBA16F_EXT
. TheRGB16F
format is not color-renderable in WebGL 2.0.
It extends WebGLRenderingContext.getFramebufferAttachmentParameter()
:
- In WebGL 1.0 contexts, the
pname
parameter now acceptsext.FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT
. AnINVALID_OPERATION
error is generated ifattachment
isDEPTH_STENCIL_ATTACHMENT
andpname
isFRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT
. Whenpname
isext.FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT
,getFramebufferAttachmentParameter()
returns eithergl.FLOAT
orgl.UNSIGNED_NORMALIZED_EXT
for floating-point or unsigned fixed-point components respectively.
Examples
const ext = gl.getExtension("EXT_color_buffer_half_float");
gl.renderbufferStorage(gl.RENDERBUFFER, ext.RGBA16F_EXT, 256, 256);
Specifications
Specification |
---|
WebGL EXT_color_buffer_half_float Extension Specification |