GLSL шейдеры | Ломтики круга
Я пытаюсь сделать вид полярных часов в Quartz Composer с 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;
}
Теперь я хотел бы знать, где сказать этому коду, что он будет нарисован градусами в зависимости от переменной на входе.
Заранее спасибо