WebGLRenderingContext: getShaderPrecisionFormat() 方法

Baseline 已廣泛支援

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

注意:此功能在 Web Workers 中可用。

WebGLRenderingContext.getShaderPrecisionFormat() 方法屬於 WebGL API,它返回一個新的 WebGLShaderPrecisionFormat 物件,該物件描述了指定著色器數值格式的範圍和精度。

語法

js
getShaderPrecisionFormat(shaderType, precisionType)

引數

shaderType

gl.FRAGMENT_SHADERgl.VERTEX_SHADER

precisionType

一個精度型別值。可以是 gl.LOW_FLOAT, gl.MEDIUM_FLOAT, gl.HIGH_FLOAT, gl.LOW_INT, gl.MEDIUM_INT, 或 gl.HIGH_INT

返回值

一個 WebGLShaderPrecisionFormat 物件,如果發生錯誤則返回 null

異常

  • 如果著色器或精度型別無法識別,則返回 gl.INVALID_ENUM
  • 如果不支援著色器編譯器,則返回 gl.INVALID_OPERATION

示例

以下程式碼獲取具有 gl.MEDIUM_FLOAT 精度型別的 gl.VERTEX_SHADER 的精度格式。

js
const canvas = document.getElementById("canvas");
const gl = canvas.getContext("webgl");

gl.getShaderPrecisionFormat(gl.VERTEX_SHADER, gl.MEDIUM_FLOAT);
// WebGLShaderPrecisionFormat { rangeMin: 127, rangeMax: 127, precision: 23 }

規範

規範
WebGL 規範
# 5.14.9

瀏覽器相容性

另見