您当前的位置: 首页 > 

鱼儿-1226

暂无认证

  • 0浏览

    0关注

    1100博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

GLSL shader 磨砂玻璃效果

鱼儿-1226 发布时间:2021-11-24 17:35:51 ,浏览量:0

 

CCProgram vs %{

precision highp float;

#include

in vec3 a_position;

in vec2 a_uv0;

in vec4 a_color;

out vec2 v_uv0;

out vec4 v_color;

void main () {

gl_Position = cc_matViewProj * vec4(a_position, 1);

v_uv0 = a_uv0;

v_color = a_color;

}

}%

CCProgram fs %{

precision highp float;

in vec2 v_uv0;

in vec4 v_color;

uniform sampler2D texture;

uniform Properties {

vec2 size;

};

// 模糊半径

// for 循环的次数必须为常量

const float RADIUS = 20.0;

// 获取模糊颜色

vec4 getBlurColor (vec2 uv) {

vec4 color = vec4(0); // 初始颜色

float sum = 0.0; // 总权重

// 卷积过程

for (float r = -RADIUS; r 1.0) continue;

for (float c = -RADIUS; c 1.0) continue;

vec2 target = vec2(x, y); // 目标纹理坐标

float weight = (RADIUS - abs(r)) * (RADIUS - abs(c)); // 计算权重

color += texture2D(texture, target) * weight; // 累加颜色

sum += weight; // 累加权重

}

}

color /= sum; // 求出平均值

return color;

}

void main () {

vec4 color = v_color;

color *= texture(texture, v_uv0);

if (color.a != 0.0) {

color = getBlurColor(v_uv0); // 获取模糊后的颜色

}

color.a *= v_color.a; // 还原透明度

gl_FragColor = color;

}

}

关注
打赏
1604459285
查看更多评论
立即登录/注册

微信扫码登录

0.0399s