Я только немного начал играть с шейдерами. В Интернете есть много материала для чтения и тестирования. Я укажу вам в сторону некоторых URL-адресов, которые я нашел полезными, чтобы понять, как они работают, и что вы можете начать.
Простой учебник для достижения полутонового эффекта с шейдерами (cocos2d)
http://www.shaderdev.com/2013/09/16/full-scene-shader-effects-how-to-create-a-grayscale-pause-screen-using-ccrendertexture/
Coding эксперименты BlogPost: большой глядя шейдерный эффект. Это шейдер делюсь для cocos2d ниже ...
http://coding-experiments.blogspot.com/2010/06/frosted-glass.html
С теми, вы наверняка на вашем пути. Не стесняйтесь использовать шейдеры ниже, если вы найдете их полезными, они были взяты со второго URL-адреса.
вершинный шейдер
attribute vec4 a_position;
attirbute vec4 a_color;
attribute vec2 a_texCoord;
uniform mat4 u_MVPMatrix;
varying lowp vec2 v_fragmentColor;
varying lowp vec2 v_texCoord;
void main()
{
gl_Position = CC_MVPMatrix * a_position;
v_fragmentColor = a_color;
v_texCoord = a_texCoord;
}
фрагмент шейдера
varying lowp vec4 v_fragmentColor;
varying lowp vec2 v_texCoord;
uniform sampler2D u_texture;
float rand(vec2 co)
{
return fract(sin(dot(co.xy ,vec2(92.,80.))) +
cos(dot(co.xy ,vec2(41.,62.))) * 5.1);
}
void main()
{
vec2 rnd = vec2(0.0);
rnd = vec2(rand(v_texCoord),rand(v_texCoord));
glFragColor = texture2D(u_texture, v_texCoord+rnd*0.05);
}