如何解决高斯模糊与阿尔法
是否可以通过GLSL在Photoshop中使高斯模糊?我只找到了一些工作原理相同的着色器示例。但是,如果半透明的模糊效果,它们都无法返回与Photoshop相同的结果。
我进行两次通过乒乓高斯模糊处理,其中我使用两个帧缓冲区并通过统一更改方向。屏幕截图上的迭代次数和sigma都等于2。
P.S。经过两天的研究,我没有找到真正有用的答案,我不敢相信没有人愿意修复/制作此着色器。
varying vec2 uv;
uniform float iterations;
uniform float sigma;
uniform vec2 texelSize;
uniform vec2 direction;
void main() {
vec4 color = texture2D(texture,uv);
float weight = 0.0;
float totalWeight = 1.0;
for(float i = 1.0; i <= iterations; i++) {
weight = exp(-(i * i) / (2.0 * sigma * sigma)); // gaussian 1D
color += texture2D(texture,uv - i * direction * texelSize) * weight;
color += texture2D(texture,uv + i * direction * texelSize) * weight;
totalWeight += 2.0 * weight;
}
color.rgb /= totalWeight;
/*=========================*/
gl_FragColor = color;
/*==========OR============*/
gl_FragColor = vec4(color.rgb,1.0);
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。