WebGLRenderingContext:getShaderPrecisionFormat() 方法
WebGLRenderingContext.getShaderPrecisionFormat()
方法是 WebGL API 的一部分,它返回一个新的 WebGLShaderPrecisionFormat
对象,该对象描述了指定着色器数值格式的范围和精度。
语法
js
getShaderPrecisionFormat(shaderType, precisionType)
参数
shaderType
-
gl.FRAGMENT_SHADER
或gl.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 |
浏览器兼容性
BCD 表格仅在启用 JavaScript 的浏览器中加载。