OES_texture_float 擴充套件

Baseline 已廣泛支援

此特性已相當成熟,可在許多裝置和瀏覽器版本上使用。自 ⁨2015 年 7 月⁩以來,各瀏覽器均已提供此特性。

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 批准的擴充套件規範

瀏覽器相容性

另見