额。。。最近 在鼓捣光效之类的 东西,额不多说了 先上图
#ifdef GL_ES
precision lowp float;
#endif
uniform vec2 center;
varying vec2 v_texCoord;
uniform sampler2D CC_Texture0;
const vec2 mystep = vec2(0.006, 0.002);
void main(void)
{
vec4 cc=vec4(0,1.0,0,0);
gl_FragColor = texture2D(CC_Texture0, v_texCoord)+cc;
}
脚本 非常的 简单。。。。额 。。。其实 我真的用的那个也不复杂
额。。。实验的 结果是 手机上我感觉 实在是太伤了。。。完全 渲染 不来啊。。。。
额。。怪不得 没见过人 去渲染过额。。。。话说 最后还是把 实验的结果发下 因为 答应 斑竹了么。。。。
哎。。。最后 恳请 大牛们 是否 有相关的 经验 可以传授。。确实 其实 如果 可以使用的话 ,画面 可以好很多的 ,不过 我作为个这方面的初学者。。。效率方面 实在是有点不知所措额。。。哎
上面的 脚本 是被我 简化 在简化的,,,哎。。。随便 复杂 点 就运行不来了。。。
应 斑竹 建议 我把下面的光效代码 也发下 额。。。我真的写的很烂 不要嘲讽我啊 大大们 贴出来 只是 希望 有人 可以有更好的解决方案
// http://www.cocos2d-iphone.org
#ifdef GL_ES
precision lowp float;
#endif
uniform vec2 center;
varying vec2 v_texCoord;
uniform sampler2D CC_Texture0;
const vec2 mystep = vec2(0.012, 0.004);
void main(void)
{
float time = CC_Time;
float test = mod(time,2.0);
float test2 = mod(time,1.0);
vec2 p = gl_FragCoord.xy - center.xy;
if(center.x>0.5)
{
gl_FragColor = texture2D(CC_Texture0, v_texCoord);
}
else
{
vec3 color = texture2D(CC_Texture0, v_texCoord).rgb;
float weight = 30.0;
float assess = pow(texture2D(CC_Texture0, v_texCoord).a, 3.0)*weight;
float alpha = assess;
alpha += texture2D( CC_Texture0, v_texCoord.st + vec2( -3.0*mystep.x*(0.5-test2), -3.0*mystep.y*(0.5-test2) ) ).a;
alpha += texture2D( CC_Texture0, v_texCoord.st + vec2( -2.0*mystep.x*(0.5-test2), -2.0*mystep.y*(0.5-test2) ) ).a;
alpha += texture2D( CC_Texture0, v_texCoord.st + vec2( -1.0*mystep.x*(0.5-test2), -1.0*mystep.y*(0.5-test2) ) ).a;
alpha += texture2D( CC_Texture0, v_texCoord.st + vec2( 0.0 , 0.0) ).a;
alpha += texture2D( CC_Texture0, v_texCoord.st + vec2( 1.0*mystep.x*(0.5-test2), 1.0*mystep.y*(0.5-test2) ) ).a;
alpha += texture2D( CC_Texture0, v_texCoord.st + vec2( 2.0*mystep.x*(0.5-test2), 2.0*mystep.y*(0.5-test2) ) ).a;
alpha += texture2D( CC_Texture0, v_texCoord.st + vec2( 3.0*mystep.x*(0.5-test2), 3.0*mystep.y*(0.5-test2) ) ).a;
alpha += texture2D( CC_Texture0, v_texCoord.st + vec2( -3.0*mystep.x*(0.5-test2), 3.0*mystep.y*(0.5-test2) ) ).a;
alpha += texture2D( CC_Texture0, v_texCoord.st + vec2( -2.0*mystep.x*(0.5-test2), 2.0*mystep.y*(0.5-test2) ) ).a;
alpha += texture2D( CC_Texture0, v_texCoord.st + vec2( -1.0*mystep.x*(0.5-test2), 1.0*mystep.y*(0.5-test2) ) ).a;
alpha += texture2D( CC_Texture0, v_texCoord.st + vec2( 1.0*mystep.x*(0.5-test2), -1.0*mystep.y*(0.5-test2) ) ).a;
alpha += texture2D( CC_Texture0, v_texCoord.st + vec2( 2.0*mystep.x*(0.5-test2), -2.0*mystep.y*(0.5-test2) ) ).a;
alpha += texture2D( CC_Texture0, v_texCoord.st + vec2( 3.0*mystep.x*(0.5-test2), -3.0*mystep.y*(0.5-test2) ) ).a;
alpha += texture2D( CC_Texture0, v_texCoord.st + vec2( 0.0, 3.0*mystep.y*(0.5-test2) ) ).a;
alpha += texture2D( CC_Texture0, v_texCoord.st + vec2( 0.0, 2.0*mystep.y*(0.5-test2) ) ).a;
alpha += texture2D( CC_Texture0, v_texCoord.st + vec2( 0.0, 1.0*mystep.y*(0.5-test2) ) ).a;
alpha += texture2D( CC_Texture0, v_texCoord.st + vec2( 0.0, -1.0*mystep.y*(0.5-test2) ) ).a;
alpha += texture2D( CC_Texture0, v_texCoord.st + vec2( 0.0, -2.0*mystep.y*(0.5-test2) ) ).a;
alpha += texture2D( CC_Texture0, v_texCoord.st + vec2( 0.0, -3.0*mystep.y*(0.5-test2) ) ).a;
alpha += texture2D( CC_Texture0, v_texCoord.st + vec2( -3.0*mystep.x*(0.5-test2), 0.0 ) ).a;
alpha += texture2D( CC_Texture0, v_texCoord.st + vec2( -2.0*mystep.x*(0.5-test2), 0.0 ) ).a;
alpha += texture2D( CC_Texture0, v_texCoord.st + vec2( -1.0*mystep.x*(0.5-test2), 0.0 ) ).a;
alpha += texture2D( CC_Texture0, v_texCoord.st + vec2( 1.0*mystep.x*(0.5-test2), 0.0 ) ).a;
alpha += texture2D( CC_Texture0, v_texCoord.st + vec2( 2.0*mystep.x*(0.5-test2), 0.0 ) ).a;
alpha += texture2D( CC_Texture0, v_texCoord.st + vec2( 3.0*mystep.x*(0.5-test2), 0.0 ) ).a;
alpha /= 25.0+assess;
color = clamp(color + (alpha-1), 0, 1.0);
if(alpha<=0.5&&alpha>0)
{
gl_FragColor = vec4(color.r+1.0*alpha, color.g, color.b, alpha);
}
else
{
gl_FragColor = vec4(color.r, color.g, color.b, alpha);
}
}
}
额 图片 描述 不见了。。。。。
1。是 用第一个脚本 电脑上的
2.是 用第一个脚本 手机上的 会闪,颜色也不对
3是用第二个脚本 电脑上的,,,手机上额。。。。貌似 运行都运行不来。。。