首先在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);
问 Webgl或者Threejs如何在应用拓展性shader?