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

本文通过具体实例介绍了使用Shader实现游戏中的视觉特效,如中毒和冰冻效果。通过操作颜色通道值来改变图像显示,达到所需的视觉效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

先来个对比效果图把~

[img]http://dl2.iteye.com/upload/attachment/0097/0233/09319699-d1eb-3d8f-891f-d97eded9b2d6.jpg[/img]


#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) ;
}



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

[img]http://dl2.iteye.com/upload/attachment/0097/0235/bc389fe8-8c44-3950-88bb-02e7d02964a3.jpg[/img]



#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的应用~
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值