cocos shader 之 马赛克滤镜

前端之家收集整理的这篇文章主要介绍了cocos shader 之 马赛克滤镜前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

效果:


VSH:

#ifdef OPENGL_ES
precision mediump vec2;
precision mediump float;
#endif

// Attributes
attribute vec3 a_position;
attribute vec2 a_texCoord;
attribute vec4 a_color;

// Varyings
#ifdef GL_ES
varying vec2 v_texCoord;
#else
varying vec2 v_texCoord;
#endif
varying vec4 v_fragmentColor;

void main()
{
    gl_Position = CC_PMatrix * vec4(a_position,1.0);
    v_texCoord = a_texCoord;
    v_fragmentColor = a_color;
}


FSH:

#ifdef GL_ES
precision mediump float;
#endif

uniform sampler2D u_texture;
varying vec2 v_texCoord;
varying vec4 v_fragmentColor;
const vec3 nLightPlus = vec3(0.1,0.1,0.1);
uniform vec2 resolution;
void main() 
{
    vec4 col = texture2D(CC_Texture0,v_texCoord );
    float x = v_texCoord.x * resolution.x;
    float y = v_texCoord.y * resolution.y;
    float realX = floor(x/5.0 + 0.5) * 5.0;
    float realY = floor(y/5.0 + 0.5) * 5.0;
    gl_FragColor = texture2D(CC_Texture0,vec2(realX/resolution.x,realY/resolution.y) );
}

猜你在找的Cocos2d-x相关文章