OES_texture_float 扩展

OES_texture_float 扩展是 WebGL API 的一部分,它为纹理公开了浮点像素类型。

可以使用 WebGLRenderingContext.getExtension() 方法获得 WebGL 扩展。有关更多信息,请参阅 使用扩展,该内容位于 WebGL 教程 中。

注意:此扩展仅适用于 WebGL1 上下文。在 WebGL2 中,此扩展的功能默认在 WebGL2 上下文中可用。

扩展方法

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

  • type 参数现在接受 gl.FLOAT
  • pixels 参数现在接受 Float32Array

限制:线性过滤

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

要在浮点纹理上使用线性过滤,请除了此扩展之外,还启用 OES_texture_float_linear 扩展。

浮点颜色缓冲区

此扩展隐式启用 WEBGL_color_buffer_float 扩展(如果支持),这允许渲染到 32 位浮点颜色缓冲区。

示例

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

const texture = gl.createTexture();
gl.bindTexture(gl.TEXTURE_2D, texture);

gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.FLOAT, image);

规范

规范
WebGL OES_texture_float Khronos 批准扩展规范

浏览器兼容性

BCD 表格仅在浏览器中加载

另请参阅