OES_texture_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 August 2016.
The OES_texture_half_float
extension is part of the WebGL API and adds texture formats with 16- (aka half float) and 32-bit floating-point components.
WebGL extensions are available using the WebGLRenderingContext.getExtension()
method. For more information, see also Using Extensions in the WebGL tutorial.
Constants
ext.HALF_FLOAT_OES
-
Half floating-point type (16-bit).
Extended methods
This extension extends WebGLRenderingContext.texImage2D()
and WebGLRenderingContext.texSubImage2D()
:
- The
type
parameter now acceptsext.HALF_FLOAT_OES
.
Limitation: Linear filtering
Linear filtering on half floating-point textures is not allowed with this extension. If you set the magnification or minification filter in the WebGLRenderingContext.texParameter()
method to one of gl.LINEAR
, gl.LINEAR_MIPMAP_NEAREST
, gl.NEAREST_MIPMAP_LINEAR
, or gl.LINEAR_MIPMAP_LINEAR
, and use half floating-point textures, the texture will be marked as incomplete.
To use linear filtering on half floating-point textures, enable the OES_texture_half_float_linear
extension in addition to this extension.
Half floating-point color buffers
This extension implicitly enables the EXT_color_buffer_half_float
extension (if supported), which allows rendering to 16-bit floating point formats.
Examples
const ext = gl.getExtension("OES_texture_half_float");
const texture = gl.createTexture();
gl.bindTexture(gl.TEXTURE_2D, texture);
gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, ext.HALF_FLOAT_OES, image);
Specifications
Specification |
---|
WebGL OES_texture_half_float Khronos Ratified Extension Specification |
Browser compatibility
BCD tables only load in the browser