原文: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了、、~

效果图:

OPENGL---Ps 径向模糊算法(glsl)的更多相关文章

  1. win7,64bit下的OpenGL着色语言(glsl)开发环境配置(原)

    一.环境准备: 系统环境win7,64位,双显卡:集成显卡+gt540m,gt540建议下载最新的驱动,可以支持到opengl4.3标准,一般双显的笔记本,程序默认启用的是集显,我机器的集显驱动有点老 ...

  2. 【转载】OpenGL超级宝典笔记——GLSL语言基础

    变量 GLSL的变量命名方式与C语言类似.变量的名称可以使用字母,数字以及下划线,但变量名不能以数字开头,还有变量名不能以gl_作为前缀,这个是GLSL保留的前缀,用于GLSL的内部变量.当然还有一些 ...

  3. PS 滤镜算法原理 ——马赛克

    % method : 利用邻域的随意一点取代当前邻域全部像素点 %%%% mosaic clc; clear all; addpath('E:\PhotoShop Algortihm\Image Pr ...

  4. PS 滤镜算法原理——染色玻璃

    %%%% 完成PS 中的染色玻璃滤镜特效 clc; clear all; close all; Image=imread('4.jpg'); Image=double(Image); Gray_Ima ...

  5. PS 滤镜算法原理——照亮边缘

    这个算法原理很简单,对彩色图像的R,G,B 三个通道,分别求梯度,然后将梯度值作为三个通道的值. clc; clear all;Image=imread('4.jpg');Image=double(I ...

  6. PS 滤镜算法原理——曝光过度

    这个算法的原理,就是将图像反相,然后分别比较原图与反相后的图三个通道的大小,将小的值输出. clc; clear all; Image=imread('4.jpg'); Image=double(Im ...

  7. PS 滤镜算法— — 表面模糊

    图像的表面模糊处理,其作用是在保留图像边缘的情况下,对图像的表面进行模糊处理.在对人物皮肤处理上,比高斯模糊更有效.因为高斯模糊在使人物皮肤光洁的同时,也将一些边缘特征如脸部的眉毛.嘴唇等给模糊了,不 ...

  8. PS 滤镜算法原理——碎片效果

    %%% Fragment %%% 对原图做四个方向的平移,然后对平移的结果取平均 %%% 碎片效果 clc; clear all; Image=imread('4.jpg'); Image=doubl ...

  9. PS 滤镜算法原理——高反差保留 (High Pass)

    这个特效简单来说,就是一个高通滤波器, 对图像做高斯滤波,用原图减去高斯滤波后的图,再将差值加上128. clc; clear all; close all; Image=imread('4.jpg' ...

随机推荐

  1. 封装springmvc处理ajax请求结果

    原文链接:http://blog.csdn.net/qq_37936542/article/details/79064818 需求描述:ajax向后台发起请求,springmvc在处理完请求后返回的结 ...

  2. 在CentOS上使用Nginx和Tomcat搭建高可用高并发网站

    目录 目录 前言 创建CentOS虚拟机 安装Nginx 安装Tomcat 安装lvs和keepalived 反向代理 部署网站 搭建数据库 编写网站项目 解决session一致性 注意 参考资料 前 ...

  3. 1046: 找不到类型,或者它不是编译时常数: PieSeries

    如题所看到的,出现提示,这个是绘图相关的错误:

  4. js进阶 11-1 jquery中的页面内容操作的三个方法

    jquery中的页面内容操作的三个方法 一.总结 一句话总结:记三个方法即可.text,html,val.因为这里是方法,所以设置值的是后面方法的参数. 1.jquery中的页面内容操作的三个方法? ...

  5. leveldb学习:Versionedit和Versionset

    VersionEdit: compact过程中会有一系列改变当前Version的操作(FileNumber添加.删除input的sstable,添加输出的sstable).为了缩小version切换的 ...

  6. js进阶 9-8 html标签如何实现禁止复制和粘贴

    js进阶 9-8  html标签如何实现禁止复制和粘贴 一.总结 一句话总结: 1.在oncopy方法中return false即可阻止在控件中复制内容 2.在onpaste方法中return fal ...

  7. ITFriend创业败局(序):简要概述我的第一次创业经历

    是时候, 面对过去,继续踏上未来之路了.    是时候,该给自己一个交待了,给ITFriend创业合伙人.ITFriend用户.关注我的朋友和网友们一个答复了.    是时候,全面认真总结过去的经历. ...

  8. NSstring封装

    来自http://devtang.com/blog/2012/02/14/nsstring-java-like-wrapper/ NSStringWrapper.h #import <Found ...

  9. Power aware dynamic scheduling in multiprocessor system employing voltage islands

    Minimizing the overall power conservation in a symmetric multiprocessor system disposed in a system- ...

  10. .net命名空间和程序集详解

    命名空间是一种用于将逻辑上相似的类按层次结构分组的机制.这种机制防止了命名冲突.在这种结构化采用被点号"."分隔的单词来实现.通常最顶层的命名空间是System,例如System; ...