Mat*_*ijn 5 shader opengl-es blur cocos2d-iphone ios
目前我正在玩Cocos2D.我希望能够在显示通知叠加层时模糊整个场景.
我以为我可以用着色器做这个(我是一个非常OpenGL的菜鸟).从我发现的是有"fsh"文件,其中包含着色器的算法.我找到一个用于" gausian模糊 "但是如何在Cocos2D的CCScene中添加这样的着色器?
我似乎无法弄清楚这一点.
我自己刚开始用着色器玩一点.网上有很多材料可供阅读和试用.我会指出你的一些网址,我发现有用的方法来了解他们是如何做什么的......这可能会让你开始.
使用着色器实现灰度效果的简单教程(Cocos2D)
编码实验blogpost:很棒的着色效果.这是我在下面为cocos2D分享的着色器...
http://coding-experiments.blogspot.com/2010/06/frosted-glass.html
有了这些你肯定会在路上.如果您发现它们有用,请随意使用下面的着色器,这些是从第二个网址获取的.
顶点着色器
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;
}
Run Code Online (Sandbox Code Playgroud)
片段着色器
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);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2891 次 |
| 最近记录: |