OPENGL---Ps 径向模糊算法(glsl)
本文转载自: http://blog.csdn.net/zx6733090/article/details/40311689
功能本人之前也介绍过,但是这里转载,是因为这个版本是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了、、~
效果图:
最新文章
- GNS3 IOU 配置
- 股票数据调用示例代码php
- 请确认 <;Import>; 声明中的路径正确,且磁盘上存在该文件。
- SDAccel-FPGA将带来至多25倍单位功耗性能提升
- 性能测试指标&;说明 [解释的灰常清楚哦!!]
- 炼数成金hadoop视频干货04
- spring aop配置及用例说明(1)
- 三个案例带你看懂LayoutInflater中inflate方法两个参数和三个参数的区别
- JMS集群部署问题 java.net.ConnectException: Connection refused; No available router to destination
- 根据SVN的MESSAGE进行多版本输出,反向排序,真是曲折~~~啊
- The APR based Apache Tomcat Native library tomcat启动错误
- .net 获取类型的Type类型的几种方法
- Linux -- ls只显示目录
- 07_SSH免登录配置
- ELF格式探析之三:sections
- Delphi XE中String、ANSIString、TBytes之间的转换
- UnityEngine.Time类属性解析
- 【Unity】使用Resources类管理资源
- [Python] 分段线性插值
- .NET基础 (18)特性