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

Opengl 使用GLSL的正方形中的径向梯度?,opengl,glsl,fragment-shader,radial-gradients,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_po

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

太长了,无法发表评论——就是这样

“显然不正确”是什么意思?如果这很明显,你为什么不改正呢?我的意思是,它看起来过度膨胀了,但我看不到任何明显的迹象

这个着色器有什么问题?什么是实际值?什么是
len
value(顺便说一句,您为什么需要它?)?什么是顶点着色器?
vertex\u pos
center
是否在同一空间