OES_texture_half_float 擴充套件

Baseline 已廣泛支援

此功能已相當成熟,可在多種裝置和瀏覽器版本上執行。自 ⁨2016 年 8 月⁩ 起,所有瀏覽器均已提供此功能。

OES_texture_half_float 擴充套件是 WebGL API 的一部分,它增加了包含 16 位(也稱為半精度浮點)和 32 位浮點元件的紋理格式。

可以使用 WebGLRenderingContext.getExtension() 方法來訪問 WebGL 擴充套件。有關更多資訊,請參閱 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 批准擴充套件規範

瀏覽器相容性

另見