快速径向模糊着色器-GLSL

快速径向模糊着色器-GLSL,glsl,blur,Glsl,Blur,我尝试使用GLSL着色器进行快速无线电模糊,以下是我的实现: 通过1,以单位步长沿模糊方向计算16个样本的平均颜色 通过2,计算沿16步长模糊方向的3个样本的平均颜色 通过这个,我想得到模糊长度为48的结果,但是我得到了一些伪影 我还测试了均匀方向上的模糊,这也显示了一些瑕疵,但较少。这是我的着色器代码,您可以在shadertoy上测试它: //蛮力法 #iChannel0“文件://E:/workspace/data/color\u test.png” 常量浮点u_样本u步=1.0; c

我尝试使用GLSL着色器进行快速无线电模糊,以下是我的实现:

  • 通过1,以单位步长沿模糊方向计算16个样本的平均颜色
  • 通过2,计算沿16步长模糊方向的3个样本的平均颜色
通过这个,我想得到模糊长度为48的结果,但是我得到了一些伪影

我还测试了均匀方向上的模糊,这也显示了一些瑕疵,但较少。这是我的着色器代码,您可以在shadertoy上测试它:

//蛮力法
#iChannel0“文件://E:/workspace/data/color\u test.png”
常量浮点u_样本u步=1.0;
const int u_nsample=48;
常数vec2 u_中心=vec2(0.5);//在原始图像中居中,标准化为[0,1]
void main(){
vec2坐标=gl_FragCoord.xy/iResolution.xy;
//vec2 cstep=u_-sample_-step/iResolution.xy*规格化(u_-center-coord);
vec2 cstep=u_-sample_-step/iResolution.xy*规格化(u_-center-coord);
vec4颜色=vec4(0.0);
对于(int i=0;i