6. cocos-2dx Shader(二) 实例应用

阅读更多

shader在处理资源上有很多种应用。
比如 按钮的变灰,角色的冰冻,石化,中毒等效果,再比如水波的滤镜实现~
.

先来个类似于最近比较火的刀塔传奇里的中毒效果把。(ps:抽的亚龙不怎么给力。o(︶︿︶)o 唉)。
资源我就拿天天酷跑里的loading男孩了。

先来个对比效果图把~

6. cocos-2dx Shader(二) 实例应用_第1张图片

#ifdef GL_ES 
precision mediump float; 
#endif 
uniform sampler2D u_texture; 
varying vec2 v_texCoord; 
varying vec4 v_fragmentColor; 
void main(void) 
{ 
    gl_FragColor = texture2D(u_texture, v_texCoord) * v_fragmentColor;
	gl_FragColor.r *= 0.8;
	gl_FragColor.r += 0.08 * gl_FragColor.a;
	gl_FragColor.g *= 0.8;
	gl_FragColor.b *= 0.8;
	gl_FragColor.g += 0.2 * gl_FragColor.a;
   //gl_FragColor= vec4(color.r,color.g, color.b,color.a) ;
}




再来个冰冻效果,
还是先上图:

6. cocos-2dx Shader(二) 实例应用_第2张图片


#ifdef GL_ES 
precision mediump float; 
#endif 
uniform sampler2D u_texture; 
varying vec2 v_texCoord; 
varying vec4 v_fragmentColor; 
void main(void) 
{ 
    vec4 normalColor = v_fragmentColor * texture2D(u_texture, v_texCoord);
	normalColor *= vec4(0.8, 0.8, 0.8, 1);
	normalColor.b += normalColor.a * 0.2;
    gl_FragColor = normalColor;
}



实现都很简单,就是操作argb值,具体的语法可以看前一张有介绍。
http://caiwb1990.iteye.com/blog/2064688

OK,就是给大家简单介绍了下shader的应用~



  • 6. cocos-2dx Shader(二) 实例应用_第3张图片
  • 大小: 12.3 KB
  • 6. cocos-2dx Shader(二) 实例应用_第4张图片
  • 大小: 12.3 KB
  • 6. cocos-2dx Shader(二) 实例应用_第5张图片
  • 大小: 13.2 KB
  • 查看图片附件

你可能感兴趣的:(cocos2dx,shader)