glsl boom
原理:
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相关推荐
- Boom Library 93套影视游戏无损配乐音效素材合集包
Boom Library 93套影视游戏无损配乐音效素材合集包 素材压缩包大小共:851G 每个合集为独立压缩包 可选择性下载 云桥网络 平台获取合集包 01.BOOM Library Assault ...
- OpenGL进阶(十三) - GLSL光照(Lighting)
提要 在上一篇文章中,我们介绍了简单的Shading,同时提出了一个光照模型,模拟了一个点光源,但是,关于光的故事还没有结束... 今天要学习的是方向光源(Directional Light),聚光灯 ...
- NME的GLSL支持情况
今天下载了NME3.5.5,测试了一下其中的HerokuShader这个例程. 此例程中是利用NME的跨平台OpenGL支持,把glsl.heroku.com上的shader例程搬到了NME中,测试结 ...
- Lesson2 Hello,GLSL
2019独角兽企业重金招聘Python工程师标准>>> OpenGL着色语言(OpenGL Shading Language)是用来在OpenGL中着色编程的语言,也即开发人员写的短 ...
- linux下glew例子,一个简单的GLSL Shader例子
本例子选自OpenGL Shading Language中的第一个Shader例子,使用颜色平滑地表示一个表面的温度.温度及其颜色的范围在应用程序中进行设置. //先看顶点着色器temp.vert: ...
- GLSL. 语法基础
GLSL语法跟C语言非常相似: 1.数据类型: GLSL包含下面几种简单的数据类型 float bool :false or ture int 向量: vec {2,3,4} 长度为2, ...
- GLSL实现图像处理
今天晚上没事将以前弄的OPENGL着色语言实现滤镜效果的实现和大家分享一下,滤镜主要包括图像的对比度调整.浮雕效果.彩色图片灰度化.卷积等操作. 这些操作其本质上是属于图像处理的东西,OpenGL实现 ...
- GLSL着色器周记02
GLSL着色器周记02 来源:网络 编辑:admin 这周学了好多.包括伪随机数.柏林噪声. 先说伪随机数.伪随机数我们用的是周期函数而不是那种由前一项乘一个超大的数取余数的方法.使用周期函数的 ...
- 使用GLSL实现雾化的效果
from:http://www.cnblogs.com/dawn/archive/2010/03/31/1701327.html 1 为什么需要在GLSL中实现雾的效果? D3D10已经不再支持固定管 ...
最新文章
- qpsk调制解调matlab_本科毕业设计课题—QPSK相干解调的MATLAB仿真(3)
- pythonfile操作教程_Python基础教程之文件操作
- python 求函数最大值_遗传算法与Python图解
- 使用ANY和ALL条件
- ABAP Development Tool前后台交互的原理
- 计算机云客户端,蓝奏云网盘客户端 0.3.7电脑版
- 20140625 程序 进程 线程 物理存储器
- Yarn 报错:error Couldn‘t publish package: “https://registry.yarnpkg.com/ 。。。Forbidden“
- asp.net mvc 包含了一个 html 的助手类在哪里,c# - 在App_Code中使用@HTML的ASP.NET MVC Razor Helper - 堆栈内存溢出...
- Ubuntu16.04 下SU画图,批量和单个
- mac airdrop 隔空投送 我可以发现别人,别人发现不了我。搜索不到。
- 国外虚拟主机购买时的注意事项
- RHCE 考试经验总结
- 永久激活win和office
- PRIMES is in P
- android checkbox 文字和图标间距,CheckBox选择框和文字设置间距
- 通信原理简明教程 | 物联网通信技术简介
- 圆周率近似计算公式--python实现
- 微信支付踩坑合集:微信小程序支付失败是什么原因?
- 小李的电商日记 22.10.12