2013-12-01 3 views
0

Я пытаюсь написать программу шейдера фрагмента в GLSL для применения радиального градиента в круге.Радиальный градиент в квадрате с использованием 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

Слишком длинный для комментариев - так идет.

Что вы подразумеваете под «явно не правильным»? Если это так очевидно, почему вы его не исправили? Я имею в виду, он выглядит слишком завышенным, но я не вижу в этом ничего очевидного.

Какие у вас проблемы с этим шейдером? Каковы фактические значения? Что такое len значение (зачем оно вам нужно, кстати?)? Что такое вершинный шейдер? vertex_pos и center находятся в одном и том же пространстве?

Смежные вопросы