webgl extension
EXT_color_buffer_half_float extension
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 getExtension() method. For more information, see also Using Extensions in the WebGL tutorial.
[!NOTE] This extension is available to both,
WebGL1andWebGL2contexts. On WebGL 2, it’s an alternative to using theEXT_color_buffer_floatextension on platforms that support 16-bit floating point render targets but not 32-bit floating point render targets.The
OES_texture_half_floatextension 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
getFramebufferAttachmentParameter()to get the framebuffer type.
- : Passed to
ext.UNSIGNED_NORMALIZED_EXT- : The framebuffer contains unsigned fixed-point components.
Extended methods
This extension extends renderbufferStorage():
- In WebGL 1.0 contexts, the
internalFormatparameter now acceptsext.RGBA16F_EXTandext.RGB16F_EXT. However,ext.RGB16F_EXTsupport is optional and applications must check framebuffer completeness to determine if it’s supported. - In WebGL 2.0 contexts, the
internalFormatparameter now acceptsext.RGBA16F_EXT. TheRGB16Fformat is not color-renderable in WebGL 2.0.
It extends getFramebufferAttachmentParameter():
- In WebGL 1.0 contexts, the
pnameparameter now acceptsext.FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT. AnINVALID_OPERATIONerror is generated ifattachmentisDEPTH_STENCIL_ATTACHMENTandpnameisFRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT. Whenpnameisext.FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT,getFramebufferAttachmentParameter()returns eithergl.FLOATorgl.UNSIGNED_NORMALIZED_EXTfor 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
SpecificationsStandards references are available on the canonical MDN page.
Browser compatibility
Browser compatibilityCompatibility data is available on the canonical MDN page.