Ho appena iniziato a suonare un po 'con gli shader. C'è molto materiale sul web da leggere e provare. Ti indicherò la direzione di alcuni URL che ho trovato utile per capire come/cosa fanno .. che potrebbe farti iniziare.
semplice tutorial per ottenere un effetto scala di grigi con shader (Cocos2d)
http://www.shaderdev.com/2013/09/16/full-scene-shader-effects-how-to-create-a-grayscale-pause-screen-using-ccrendertexture/
Coding esperimenti blogpost: grande ricerca effetto shader. Questo è lo shader condivido per Cocos2d qui sotto ...
http://coding-experiments.blogspot.com/2010/06/frosted-glass.html
con quelli che sono sicuramente sulla buona strada. Sentiti libero di usare gli shader qui sotto anche se li trovi utili, questi sono stati presi dal secondo URL.
vertex
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;
}
frammento Shader
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);
}