Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> OPENGL---Ps 徑向模糊算法(glsl)

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

編輯:關於Android編程

功能本人之前也介紹過,但是這裡轉載,是因為這個版本是Opengl實現的,大家可以看一下,也可以順便學習一下Opengl。

Opengl 實現徑向模糊,可用於實現放射性效果:

#ifdef GL_ES
precision 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了、、~

效果圖:

\

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved