原理:

1.渲染场景到fbo

2.对fbo进行高斯横向,纵向模糊,到新的fbo

3.对两张图进行叠加

模糊后的

效果就这样

给数据加大

<-vertex->

  #version 

  varying vec2 uv;

  void main(void)
{ uv = gl_MultiTexCoord0.st;
gl_Position = ftransform();
} <-fragment-> #version uniform sampler2D RTBlur;
uniform float rt_w;
uniform float rt_h;
uniform int blurType; varying vec2 uv; const int g_iFilterTime = ; // 过滤次数
const float g_fGene = (1.0/(1.0 + 2.0*(0.93 + 0.8 + 0.7 + 0.6 + 0.5 + 0.4 + 0.3 + 0.2 + 0.1))); // 衰减因子 void main(void)
{ float aryAttenuation[g_iFilterTime];
aryAttenuation[] = 0.93;
aryAttenuation[] = 0.8;
aryAttenuation[] = 0.7;
aryAttenuation[] = 0.6;
aryAttenuation[] = 0.5;
aryAttenuation[] = 0.4;
aryAttenuation[] = 0.3;
aryAttenuation[] = 0.2;
aryAttenuation[] = 0.1; vec4 sum = texture2D(RTBlur, uv)*g_fGene;
float blurStep =0.01; if( == blurType)
{
// blur in y (vertical) blurStep = 1.0 / rt_h;
vec2 vec2Step =vec2(,blurStep);
for(int i = ; i < g_iFilterTime; ++i)
{
sum += texture2D(RTBlur, uv + vec2Step)*aryAttenuation[i]*g_fGene;
sum += texture2D(RTBlur, uv - vec2Step)*aryAttenuation[i]*g_fGene;
vec2Step += vec2(,blurStep);
} }
else
{
// blur in y (vertical) blurStep = 1.0 / rt_w; vec2 vec2Step =vec2(blurStep,);
for(int i = ; i < g_iFilterTime; ++i)
{
sum += texture2D(RTBlur, uv + vec2Step)*aryAttenuation[i]*g_fGene;
sum += texture2D(RTBlur, uv - vec2Step)*aryAttenuation[i]*g_fGene;
vec2Step += vec2(blurStep,);
} } gl_FragColor = sum;
}

应该把需要发光的物体绘制boom,然后融合,这样才行,框架又得改。。。

glsl boom的更多相关文章

  1. 使用Visual Studio SDK制作GLSL词法着色插件

    使用Visual Studio SDK制作GLSL词法着色插件 我们在Visual Studio上开发OpenGL ES项目时,避免不了写Shader.这时在vs里直接编辑shader就会显得很方便. ...

  2. 基于虎书实现LALR(1)分析并生成GLSL编译器前端代码(C#)

    基于虎书实现LALR(1)分析并生成GLSL编译器前端代码(C#) 为了完美解析GLSL源码,获取其中的信息(都有哪些in/out/uniform等),我决定做个GLSL编译器的前端(以后简称编译器或 ...

  3. CSharpGL(39)GLSL光照示例:鼠标拖动太阳(光源)观察平行光的漫反射和镜面反射效果

    CSharpGL(39)GLSL光照示例:鼠标拖动太阳(光源)观察平行光的漫反射和镜面反射效果 开始 一图抵千言.首先来看鼠标拖动太阳(光源)的情形. 然后是鼠标拖拽旋转模型的情形. 然后我们移动摄像 ...

  4. CSharpGL(15)用GLSL渲染2种类型的文字

    CSharpGL(15)用GLSL渲染2种类型的文字 2016-08-13 由于CSharpGL一直在更新,现在这个教程已经不适用最新的代码了.CSharpGL源码中包含10多个独立的Demo,更适合 ...

  5. CSharpGL(13)用GLSL实现点光源(point light)和平行光源(directional light)的漫反射(diffuse reflection)

    CSharpGL(13)用GLSL实现点光源(point light)和平行光源(directional light)的漫反射(diffuse reflection) 2016-08-13 由于CSh ...

  6. CSharpGL(11)用C#直接编写GLSL程序

    CSharpGL(11)用C#直接编写GLSL程序 +BIT祝威+悄悄在此留下版了个权的信息说: 2016-08-13 由于CSharpGL一直在更新,现在这个教程已经不适用最新的代码了.CSharp ...

  7. 【BOOM】一款有趣的Javascript动画效果

    实践出真知,有的时候看到一些有趣的现象就想着用自己所学的知识复现一下.    boomJS 缘起 前几天在 github 上看到同事的一个这样的小项目,在 IOS 上实现了这样一个小动画效果,看上去蛮 ...

  8. C#+OpenGL+FreeType显示3D文字(2) - 用GLSL+VBO绘制文字

    C#+OpenGL+FreeType显示3D文字(2) - 用GLSL+VBO绘制文字 +BIT祝威+悄悄在此留下版了个权的信息说: 上一篇得到了字形贴图及其位置字典(可导出为XML).本篇就利用此贴 ...

  9. OpenGL 4.5 Core Profile管线(GLSL与应用程序接口详解)【未完成】

    之前写过一篇博客,OpenGL管线(用经典管线代说着色器内部),说的主要是OpenGL的经典管线.大家都知道,现代OpenGL已经弃用(从OpenGL 3.0开始)经典管线功能(glBegin,变换矩 ...

随机推荐

  1. 【转】【MySQL报错】ERROR 1558 (HY000): Column count of mysql.user is wrong. Expected 43, found 39.

    之前在centos6.4系统安装的是自带的mysql 5.1版本,后来升级到了5.6版本,执行以下命令报错 在网上查找原因说说因为升级不当导致,执行以下命令即可正常执行命令 mysql_upgrade ...

  2. weblogic迁移总结

    weblogic使用的数据库时DB2 1. 图形化安装weblogic和域,或者静默安装. 2. 查看环境变量env并修改,修改系统默认语言(根据实际情况) 3. 修改weblogic页面打开较慢问题 ...

  3. weblogic重启脚本

    客户要求每周weblogic重启,每台机器上有多个weblogic实例,开始准备单个服务器实例做成sysv风格的脚本,但是实例较多,于是在满足需求和自动化重启的情况下,多个服务器实例的重启放在了一起, ...

  4. spring batch初识

    Spring Batch是什么?  Spring Batch是一个基于Spring的企业级批处理框架,按照我师父的说法,所有基于Spring的框架都是使用了spring的IoC特性,然后加上自己的一些 ...

  5. JS正则验证邮箱的格式(转)

    转载自:https://www.cnblogs.com/dyllove98/archive/2013/06/28/3161626.html 一.相关的代码 function test() { var ...

  6. 园子里的一个Dal类

    public class DALHelper { public static List<T> Search<T>() where T : SH_SetBase { using ...

  7. Android TabHost的使用 顶部选项卡

    用TabHost 来实现顶部选项卡,上代码:activity_main.xml <?xml version="1.0" encoding="utf-8"? ...

  8. SQL中的DML、DDL以及DCL是什么?

    DML(data manipulation language)是数据操纵语言:它们是SELECT.UPDATE.INSERT.DELETE,就象它的名字一样,这4条命令是用来对数据库里的数据进行操作的 ...

  9. 一场由SD卡引发的灾难_转

      注:此文章转自“https://user.qzone.qq.com/63915185/blog/1512562541”.   Flash里面的数据在使用过程中莫名改变或不翼而飞?程序丢失可能无法正 ...

  10. JMeter (1) —— JMeter与WebDriver安装与测试(101 Tutorial)

    JMeter (1) -- JMeter与WebDriver安装与测试(101 Tutorial) 主要内容 JMeter安装 WebDriver安装 一个简单的JMeter+WebDriver示例 ...