原理:

1.渲染场景到fbo

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

3.对两张图进行叠加

模糊后的

效果就这样

给数据加大

<-vertex->#version 120varying vec2 uv;void main(void){uv = gl_MultiTexCoord0.st;gl_Position = ftransform();}<-fragment->#version 120uniform sampler2D RTBlur;uniform float  rt_w;uniform float  rt_h;uniform int blurType;varying vec2 uv;const int g_iFilterTime = 9; // 过滤次数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] = 0.93;aryAttenuation[1] = 0.8;aryAttenuation[2] = 0.7;aryAttenuation[3] = 0.6;aryAttenuation[4] = 0.5;aryAttenuation[5] = 0.4;aryAttenuation[6] = 0.3;aryAttenuation[7] = 0.2;aryAttenuation[8] = 0.1;vec4 sum =  texture2D(RTBlur, uv)*g_fGene;float blurStep =0.01;if(1 == blurType){// blur in y (vertical)
blurStep = 1.0 / rt_h;vec2 vec2Step =vec2(0,blurStep);for(int i = 0; i < g_iFilterTime; ++i){sum += texture2D(RTBlur, uv + vec2Step)*aryAttenuation[i]*g_fGene;sum += texture2D(RTBlur, uv - vec2Step)*aryAttenuation[i]*g_fGene;vec2Step += vec2(0,blurStep);}}else{// blur in y (vertical)
  blurStep = 1.0 / rt_w;vec2 vec2Step =vec2(blurStep,0);for(int i = 0; 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,0);}}gl_FragColor = sum;
}

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

转载于:https://www.cnblogs.com/dragon2012/p/5774636.html

glsl boom相关推荐

  1. Boom Library 93套影视游戏无损配乐音效素材合集包

    Boom Library 93套影视游戏无损配乐音效素材合集包 素材压缩包大小共:851G 每个合集为独立压缩包 可选择性下载 云桥网络 平台获取合集包 01.BOOM Library Assault ...

  2. OpenGL进阶(十三) - GLSL光照(Lighting)

    提要 在上一篇文章中,我们介绍了简单的Shading,同时提出了一个光照模型,模拟了一个点光源,但是,关于光的故事还没有结束... 今天要学习的是方向光源(Directional Light),聚光灯 ...

  3. NME的GLSL支持情况

    今天下载了NME3.5.5,测试了一下其中的HerokuShader这个例程. 此例程中是利用NME的跨平台OpenGL支持,把glsl.heroku.com上的shader例程搬到了NME中,测试结 ...

  4. Lesson2 Hello,GLSL

    2019独角兽企业重金招聘Python工程师标准>>> OpenGL着色语言(OpenGL Shading Language)是用来在OpenGL中着色编程的语言,也即开发人员写的短 ...

  5. linux下glew例子,一个简单的GLSL Shader例子

    本例子选自OpenGL Shading Language中的第一个Shader例子,使用颜色平滑地表示一个表面的温度.温度及其颜色的范围在应用程序中进行设置. //先看顶点着色器temp.vert: ...

  6. GLSL. 语法基础

    GLSL语法跟C语言非常相似: 1.数据类型: GLSL包含下面几种简单的数据类型 float  bool :false or ture int 向量: vec   {2,3,4}     长度为2, ...

  7. GLSL实现图像处理

    今天晚上没事将以前弄的OPENGL着色语言实现滤镜效果的实现和大家分享一下,滤镜主要包括图像的对比度调整.浮雕效果.彩色图片灰度化.卷积等操作. 这些操作其本质上是属于图像处理的东西,OpenGL实现 ...

  8. GLSL着色器周记02

    GLSL着色器周记02 来源:网络    编辑:admin 这周学了好多.包括伪随机数.柏林噪声. 先说伪随机数.伪随机数我们用的是周期函数而不是那种由前一项乘一个超大的数取余数的方法.使用周期函数的 ...

  9. 使用GLSL实现雾化的效果

    from:http://www.cnblogs.com/dawn/archive/2010/03/31/1701327.html 1 为什么需要在GLSL中实现雾的效果? D3D10已经不再支持固定管 ...

最新文章

  1. qpsk调制解调matlab_本科毕业设计课题—QPSK相干解调的MATLAB仿真(3)
  2. pythonfile操作教程_Python基础教程之文件操作
  3. python 求函数最大值_遗传算法与Python图解
  4. 使用ANY和ALL条件
  5. ABAP Development Tool前后台交互的原理
  6. 计算机云客户端,蓝奏云网盘客户端 0.3.7电脑版
  7. 20140625 程序 进程 线程 物理存储器
  8. Yarn 报错:error Couldn‘t publish package: “https://registry.yarnpkg.com/ 。。。Forbidden“
  9. asp.net mvc 包含了一个 html 的助手类在哪里,c# - 在App_Code中使用@HTML的ASP.NET MVC Razor Helper - 堆栈内存溢出...
  10. Ubuntu16.04 下SU画图,批量和单个
  11. mac airdrop 隔空投送 我可以发现别人,别人发现不了我。搜索不到。
  12. 国外虚拟主机购买时的注意事项
  13. RHCE 考试经验总结
  14. 永久激活win和office
  15. PRIMES is in P
  16. android checkbox 文字和图标间距,CheckBox选择框和文字设置间距
  17. 通信原理简明教程 | 物联网通信技术简介
  18. 圆周率近似计算公式--python实现
  19. 微信支付踩坑合集:微信小程序支付失败是什么原因?
  20. 小李的电商日记 22.10.12

热门文章

  1. 要成为一个牛逼程序猿,你要勇于尝试这10种姿势
  2. 【力扣刷题——字符串】附力扣链接、题目描述、解题方法及代码(344、541、剑指Offer05、151、剑指 Offer58、28、459)后续再补充
  3. python培训费用大概多少-Python培训学费需要多少钱?
  4. win10 完全卸载 小黑笔记本
  5. laravel项目使用appnode部署linux系统到阿里云服务器流程记录(待补充)
  6. 安卓端微信H5下载文件处理:让微信自动弹起跳转外部浏览器窗口
  7. 强势文化需要包容和创新
  8. 学校征文选集:成长有伴,新途无他
  9. 【财富空间】65张PPT把工匠精神说清楚
  10. 批量删微博丨2023简易版本控制台批量删除微博代码