CocosCreator Shader 马赛克效果
经过一两天的CocosShader学习,发现cocos与单纯的WebGL还是不太一样, 它提供了更多的内置函数与宏,还有一些默认变量;让开发者编写Shader特效更加方便;
看了看别人家写的马赛克shader教程,挺有意思,于是自己动手写了个马赛克,不小心一行代码搞定;
上效果:
上代码:
uniform PIXEL{
float hgsize;
float vgsize;
};
#if USE_TEXTURE
in vec2 v_uv0;
uniform sampler2D texture;
#endif
float pixelateIt (float uv, float size){
return (uv-mod(uv,size)) + (size/2.0);
}
void main () {
vec4 o = vec4(1, 1, 1, 1);
#if USE_TEXTURE
vec2 c = v_uv0;
c.x = pixelateIt(c.x, hgsize);
c.y = pixelateIt(c.y, vgsize);
CCTexture(texture, c, o);
#endif
ALPHA_TEST(o);
gl_FragColor = o;
}
可以看出来关键性代码就一行,还是挺方便,呵呵哒。 {{likeDisplay}}