OES_texture_half_float 扩展

OES_texture_half_float 扩展是 WebGL API 的一部分,它添加了具有 16 位(又称半精度浮点)和 32 位浮点组件的纹理格式。

WebGL 扩展可以使用 WebGLRenderingContext.getExtension() 方法访问。有关更多信息,请参阅 使用扩展(在 WebGL 教程 中)。

注意: 此扩展仅适用于 WebGL1 上下文。在 WebGL2 中,此扩展的功能默认情况下在 WebGL2 上下文中可用。WebGL2 中的常量是 gl.HALF_FLOAT

常量

ext.HALF_FLOAT_OES

半精度浮点类型(16 位)。

扩展方法

此扩展扩展了 WebGLRenderingContext.texImage2D()WebGLRenderingContext.texSubImage2D()

  • type 参数现在接受 ext.HALF_FLOAT_OES

限制:线性滤波

此扩展不允许对半精度浮点纹理进行线性滤波。如果在 WebGLRenderingContext.texParameter() 方法中将放大或缩小滤波器设置为 gl.LINEARgl.LINEAR_MIPMAP_NEARESTgl.NEAREST_MIPMAP_LINEARgl.LINEAR_MIPMAP_LINEAR 之一,并且使用半精度浮点纹理,则纹理将被标记为不完整。

要在半精度浮点纹理上使用线性滤波,请除了此扩展之外,还启用 OES_texture_half_float_linear 扩展。

半精度浮点颜色缓冲区

此扩展隐式启用 EXT_color_buffer_half_float 扩展(如果支持),它允许渲染到 16 位浮点格式。

示例

js
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);

规范

规范
WebGL OES_texture_half_float Khronos 批准扩展规范

浏览器兼容性

BCD 表仅在浏览器中加载

另请参阅