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已经不再支持固定管 ...
最新文章
- Java中类、常量、变量、方法名等命名规则
- [hdu 1561] The more, The Better
- Java动态代理生成的对象导出方法
- h5 nan_h5页面在不同ios设备上的问题总结
- mysql的命令行安装,忘记密码,密码重置问题
- C# 读取EXCEL文件的三种经典方法
- 随想录(以师带徒的原则)
- Spark内核解析之一:内核概述
- Eclipse : Android requires compiler compliance level 5.0 or 6.0.
- Markdown语言调整图片居中、大小
- XSS攻击---不得不防的网站安全漏洞
- 管道读写报错121:信号灯超时时间已到
- 什么是弱网测试?为什么要进行弱网测试?怎么进行弱网测试?
- Activiti 7 配置及相关流程一站式介绍(包含基础流程及网关应用)
- HLSL效果框架-多光源效果
- 【只推荐一位】木东居士,数据挖掘的大神!
- 使用BetterTouchTool自定义你的touchBar
- 【计算机网络】思科实验(3):使用三层交换机实现跨VLAN间的通信
- 如何使用CC攻击中小型网站?
- 微信小程序电商实战—环境搭建篇
热门文章
- Web前端开发,必须规避的8个错误点!
- 可视化实验十一:利用Python绘制气泡图、雷达图
- win10 完全卸载 小黑笔记本
- 函数周期表丨信息丨值丨ISONORAFTER
- 判断两条直线是否相交c语言,计算几何-两条线段是否相交(三种算法)
- widows10专业版激活,不用工具
- 26岁的他,任中国科大特任教授!2年前已在美国顶尖大学担任博士生导师!
- 广州高新技术企业补贴政策汇总及认定标准是什么,补贴20-100万
- 青铜到王者,快速提升你 MySQL 数据库的段位!
- C++ 定义盒子的Box类,具有以下要求: 可设置盒子的形状; 可计算盒子的体积; 可计算盒子的表面积