Webgl或者Threejs如何在应用拓展性shader?

发布于 2023-03-14 13:39:36

因为着色器版本不同,各个版本所支持的着色器API也是不一样的,如果我在低版本的着色器中应用到拓展,请问怎么应用呢?

查看更多

关注者
0
被浏览
576
1 个回答
Jsonco
Jsonco 图形社区官方人员 2023-03-14
奔驰的蜗牛

首先在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);

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友

手机
浏览

扫码手机浏览