我正在尝试在GLSL中编写片段着色器程序,以便在圆圈中应用径向渐变。
但我是初学者,不知道从哪里开始。我的代码显然不正确。我真的很想了解它是如何运作的。你可以给我一个很好的链接,或者可以推荐我一本书......谢谢你们所有人
const GLchar* FshaderSrc = "
uniform vec3 center;
uniform float len;
uniform vec4 u_outerColor;
uniform vec4 u_innerColor;
varying vec3 vertex_pos;
float dist;
void main(){
dist = distance(center, vertex_pos);
float l = len / 2.0;
float t = clamp(dist / l, 0.0, 1.0);
gl_FragColor = vec4(mix(u_innerColor, u_outerColor, t));
}
";
答案 0 :(得分:0)
评论太长了 - 所以就这样了。
你的意思是什么'显然不正确'?如果它是如此明显,为什么你没有纠正它?我的意思是,它看起来过于宽泛,但我没有看到任何“明显”的东西。
这款着色器有什么问题?什么是实际价值?什么是len
值(你为什么需要它,顺便说一下?)?什么是顶点着色器? vertex_pos
和center
是否在同一个空间?