OES_standard_derivatives 扩展
OES_standard_derivatives
扩展是 WebGL API 的一部分,它添加了 GLSL 导数函数 dFdx
、dFdy
和 fwidth
。
可以使用 WebGLRenderingContext.getExtension()
方法获取 WebGL 扩展。有关更多信息,请参阅 使用扩展(位于 WebGL 教程 中)。
常量
此扩展公开了一个新的常量,可用于 hint()
和 getParameter()
方法。
ext.FRAGMENT_SHADER_DERIVATIVE_HINT_OES
-
一个
GLenum
,指示 GLSL 内置函数的导数计算精度:dFdx
、dFdy
和fwidth
。
GLSL 内置函数
如果启用了此扩展,以下新函数可在 GLSL 着色器代码中使用
cpp
genType dFdx(genType)
genType dFdy(genType)
genType fwidth(genType)
示例
启用扩展
js
gl.getExtension("OES_standard_derivatives");
gl.getExtension("EXT_shader_texture_lod");
避免纹理坐标环绕时出现伪影的着色器代码
html
<script type="x-shader/x-fragment">
#extension GL_EXT_shader_texture_lod : enable
#extension GL_OES_standard_derivatives : enable
uniform sampler2D myTexture;
varying vec2 texcoord;
void main(){
gl_FragColor = texture2DGradEXT(myTexture, mod(texcoord, vec2(0.1, 0.5)),
dFdx(texcoord), dFdy(texcoord));
}
</script>
规范
规范 |
---|
WebGL OES_standard_derivatives Khronos 认证扩展规范 |
浏览器兼容性
BCD 表仅在浏览器中加载