原理:

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. keepalived+nginx双机热备+负载均衡

    Reference: http://blog.csdn.net/e421083458/article/details/30092795 keepalived+nginx双机热备+负载均衡 最近因业务扩 ...

  2. OpenStack云计算(一)——OpenStack 网络

    关于OpenStack OpenStack它是 Rackspace Cloud 和 NASA 负责的一个开源基础架构即服务的云计算项目. OpenStack 是一个由开发者和云计算技术人员的全球协作开 ...

  3. OAuth 授权过程工作原理讲解

    转自:http://www.imooc.com/article/10931 在一个单位中,可能是存在多个不同的应用,比如学校会有财务的系统会有学生工作的系统,还有图书馆的系统等等,如果每个系统都用独立 ...

  4. C++学习笔记(HelloWorld,类型和值)

    现在有一个从控制台读取输入的小程序: #include "../std_lib_facilities.h" int main() { cout << "Ple ...

  5. [Issue]git做rebase时,弹出编辑器为nano,不会使用

    今天在做一个branch的rebase, 执行git rebase -i master的时候,自动弹出了nano 编译器,捣鼓了很久,还是不会编译,保存退出,执行Ctrl+X就自动结束了,查了下,需要 ...

  6. js中表单数据序列化方式

    一共有以下三种: var obj1 = $('#queryForm').serialize(); var obj2 = $('#queryForm').serializeArray(); var ob ...

  7. python json dumps与loads有可能犯的错误

    json.dumps() 是将一个Python数据结构转换为一个JSON编码的字符串 json.loads() 是将一个JSON编码的字符串转换为一个Python数据结构     如下: >&g ...

  8. w3svc无法启动

    w3svc无法启动 运行命令regedit,打开注册表编辑器,进入:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP]: a) Cha ...

  9. webpack3--配置多入口和多出口

    上一篇我们稍微提到了webpack.config.js.今天主要来说下如何配置多入口,多出口. 我们之前写到的webpack.config.js,具体代码如下: module.exports = { ...

  10. 超频,如何超频CPU和显卡?

    首先是良好的硬件体制,CPU.内存和显卡都必须是健康的,在100%负荷下工作也能拥有合理的温度和功耗.其次就是硬件准备,超频需要一块强大的主板做支撑,特别是主板供电部分,考虑到CPU和内存超频后功耗大 ...