因为着色器版本不同,各个版本所支持的着色器API也是不一样的,如果我在低版本的着色器中应用到拓展,请问怎么应用呢?
首先在js中应用浏览器拓展,详见地址https://developer.mozilla.org/zh-CN/docs/Web/API/WebGLRenderingContext/getExtension
//webgl
gl.getExtension(name);
//threejs
renderer.context.getExtension('OES_standard_derivatives');
之后
在着色器中通过预处理指令引入拓展,片元和顶点若都要使用都需要引用,或者一个使用,另外提个通过varying传入也可以。
#extension GL_OES_standard_derivatives : enable
最终应用偏导做运算
vec3 dx = dFdx(v_position);
vec3 dy = dFdy(v_position);