воскресенье, 5 января 2014 г.

ShaderToy

Удивительный сайт ShaderToy для себя открыл. На нем как раз можно учиться и учиться писать шейдеры. Насколько я понял пишем мы уже в fragment shader. Есть список входящих переменных, таких  как: текущее время, 4 текстуры на выбор. А самое главное куча сложных ( и красивых) и простых примеров. можно разобраться с техниками демо исключительно написанных на шейдере, без вычислений на cpu.



Используется WebGL, так что нужен браузер с его поддержкой, но это уже не проблема. А webGL как раз таки используюет OpenGL ES 2.0. Поэтому можно быстро накидать зарисовку здесь и перенести на android iphone

Вот, например, модификация простейшего Blur:

void main(void)
{
vec2 uv = gl_FragCoord.xy / iResolution.xy;
vec3 t=texture2D(iChannel0, uv).xyz;

vec4 c1=vec4(texture2D(iChannel0, vec2(uv.x-0.1*sin(iGlobalTime*5.0),uv.y)).xyz,1);
vec4 c2=vec4(texture2D(iChannel0, vec2(uv.x+0.1*sin(iGlobalTime*5.0),uv.y)).xyz,1);
vec4 c3=vec4(texture2D(iChannel0, vec2(uv.x,uv.y-0.01*tan(iGlobalTime*5.0))).xyz,1);
vec4 c4=vec4(texture2D(iChannel0, vec2(uv.x,uv.y+0.01*tan(iGlobalTime*5.0))).xyz,1);

gl_FragColor = vec4(t,1.0);
gl_FragColor = (vec4(t,1.0)+c1+c2+c3+c4)/5.0;
}




Комментариев нет:

Отправить комментарий