使用GLSL在正方形中的径向梯度?

时间:2013-12-01 08:39:40

标签: opengl glsl fragment-shader radial-gradients

我正在尝试在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)); 
} 
";

1 个答案:

答案 0 :(得分:0)

评论太长了 - 所以就这样了。

你的意思是什么'显然不正确'?如果它是如此明显,为什么你没有纠正它?我的意思是,它看起来过于宽泛,但我没有看到任何“明显”的东西。

这款着色器有什么问题?什么是实际价值?什么是len值(你为什么需要它,顺便说一下?)?什么是顶点着色器? vertex_poscenter是否在同一个空间?