GLSL着色器|圆的切片

GLSL着色器|圆的切片,glsl,geometry,clock,degrees,Glsl,Geometry,Clock,Degrees,我正在尝试用带有GLSL着色器的石英合成器制作一种极时钟。问题是我对这种编程语言一无所知。但是,我一直在搜索并发现以下代码是一个良好的开端: 顶点着色器: 片段着色器: 现在我想知道在哪里对这段代码说,它将根据输入变量的不同程度绘制 提前感谢您根据我的经验,我只能建议您在尝试使用GLSL之前对其基础知识进行概括,而不了解其基本内容;看一看,;你是对的,最好的选择是从头开始。非常感谢。 #version 120 void main() { gl_Position = gl_ModelV

我正在尝试用带有GLSL着色器的石英合成器制作一种极时钟。问题是我对这种编程语言一无所知。但是,我一直在搜索并发现以下代码是一个良好的开端:

顶点着色器:

片段着色器:

现在我想知道在哪里对这段代码说,它将根据输入变量的不同程度绘制


提前感谢您

根据我的经验,我只能建议您在尝试使用GLSL之前对其基础知识进行概括,而不了解其基本内容;看一看,;你是对的,最好的选择是从头开始。非常感谢。
#version 120    
void main()
{
  gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;       
  gl_TexCoord[0] = gl_MultiTexCoord0;
}
#version 120
uniform sampler2D tex0;
uniform float border; // 0.01
uniform float circle_radius; // 0.5
uniform vec4 circle_color; // vec4(1.0, 1.0, 1.0, 1.0)
uniform vec2 circle_center; // vec2(0.5, 0.5)
void main (void)
{
  vec2 uv = gl_TexCoord[0].xy;

  vec4 bkg_color = texture2D(tex0,uv * vec2(1.0, -1.0));

  // Offset uv with the center of the circle.
  uv -= circle_center;

  float dist =  sqrt(dot(uv, uv));
  if ( (dist > (circle_radius+border)) || (dist < (circle_radius-border)) )
    gl_FragColor = bkg_color;
  else 
    gl_FragColor = circle_color;    
}