OPENGL---Ps 径向模糊算法(glsl)

    xiaoxiao2025-09-16  868

    本文转载自:  http://blog.csdn.net/zx6733090/article/details/40311689

    功能本人之前也介绍过,但是这里转载,是因为这个版本是Opengl实现的,大家可以看一下,也可以顺便学习一下Opengl。

    Opengl 实现径向模糊,可用于实现放射性效果:

    #ifdef GL_ESprecision mediump float;#endif

    uniform vec2 centerpos;uniform float GlowRange; varying vec4 v_fragmentColor;varying vec2 v_texCoord;void main()                      {        vec4 clraverge=vec4(0,0,0,0);       float range=GlowRange,count=0,x1,y1; vec2 cpos=centerpos;        for( float j = 1; j<=range ; j += 1 )   {    if(cpos.x-v_texCoord.x==0)    {       x1=v_texCoord.x;    y1=v_texCoord.y+(cpos.y-v_texCoord.y)*j/(6*range);    }    else   {   float k=(cpos.y-v_texCoord.y)/(cpos.x-v_texCoord.x);      x1=v_texCoord.x+(cpos.x-v_texCoord.x)*j/200;         if((cpos.x-v_texCoord.x)*(cpos.x-x1)<0) x1=cpos.x;   y1=cpos.y-cpos.x*k+k*x1;   if(x1<0.0||y1<0.0||x1>1.0||y1>1)    {     continue;   }   } clraverge+=texture2D( CC_Texture0, vec2(x1,y1) ); count+=1; } clraverge/=count;    gl_FragColor =clraverge;}

    centerpos为径向中心点,GlowRange为径向范围。其基本思想是模糊沿着中心点向外一条直线上的点,采样值可以自己确定,效果 好就ok了、、~

    效果图:

    Trent1985 认证博客专家 深度学习 人像美颜美妆算法 图像特效 本人多年来专注图像特效、人像美颜美妆算法研究、AI美颜美妆探索,著有《图像视频滤镜与人像美颜美妆算法详解》一书,欢迎 志同道合的朋友们一起学习交流!个人座右铭:谨言慎行,三思而后行!
    转载请注明原文地址: https://ju.6miu.com/read-1302698.html
    最新回复(0)