第十七课,帧缓存(后期处理)
反向
void main()
{FragColor = vec4(vec3(1.0 - texture(screenTexture, TexCoords)), 1.0);
}
灰度
均分灰度
void main()
{FragColor = texture(screenTexture, TexCoords);float average = (FragColor.r + FragColor.g + FragColor.b) / 3.0;//取所有的颜色分量,将它们平均化FragColor = vec4(average, average, average, 1.0);
}
加权灰度
人眼会对绿色更加敏感一些,而对蓝色不那么敏感
FragColor = texture(screenTexture, TexCoords);
float average = 0.2126 * FragColor.r + 0.7152 * FragColor.g + 0.0722 * FragColor.b;
FragColor = vec4(average, average, average, 1.0);
核效果
const float offset = 1.0 / 300.0;
vec2 offsets[9] = vec2[](vec2(-offset, offset), // 左上vec2( 0.0f, offset), // 正上vec2( offset, offset), // 右上vec2(-offset, 0.0f), // 左vec2( 0.0f, 0.0f), // 中vec2( offset, 0.0f), // 右vec2(-offset, -offset), // 左下vec2( 0.0f, -offset), // 正下vec2( offset, -offset) // 右下);float kernel[9] = float[](-1, -1, -1,-1, 9, -1,-1, -1, -1);vec3 sampleTex[9];for(int i = 0; i < 9; i++){sampleTex[i] = vec3(texture(screenTexture, TexCoords.st + offsets[i]));//纹理坐标(s,t,p,q)}vec3 col = vec3(0.0);for(int i = 0; i < 9; i++)col += sampleTex[i] * kernel[i];FragColor = vec4(col, 1.0);
对一个纹理,取该纹理点的颜色值,以及八个偏移量点(向八个方向移动1/300的纹理长度,详见offsets【9】数组)的颜色值。
该纹理点的像素颜色即为 该纹理点的颜色值 * 9 - 八个方向的颜色值*1。
虽然不理解为什么会变成这种效果,以及这种效果的现实意义。但确实会有不错的感官效果,且再游戏中(眩晕,辐射)等效果中有应用。
第十七课,帧缓存(后期处理)相关推荐
- NeHe OpenGL教程 第四十七课:CG顶点脚本
转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...
- 理解OpenGL中帧缓存FrameBuffer 渲染缓存RenderingBuffer
操作都是在默认帧缓冲的渲染缓冲上进行的.默认的帧缓冲是在你创建窗口的时候生成和配置的(GLFW帮我们做了这些). 帧缓存帮助我们离屏渲染,提高渲染速度 unsigned int captureFBO; ...
- Opengl编程学习笔记(五)——从FRAGMENT到PIXEL(framebuffer 帧缓存)
1.帧缓存包括颜色.scissor.alpha.stencil.depth这些缓存,所以帧缓存不是一片缓存,而是所有这些缓存的组合,帧缓存它对应了屏幕上的每一个pixel(不是真正的pixel,而是一 ...
- opengles2.0 帧缓存对象(FBO)
opengles2.0 帧缓存对象(FBO) 帧缓存对象(fbo)主要是用于做渲染到纹理. opengles2.0渲染到纹理的方法有三种: 第一,使用glCopyTexImage2D或者glCopyT ...
- CSharpGL(42)借助帧缓存实现渲染到纹理(RenderToTexture)
CSharpGL(42)借助帧缓存实现渲染到纹理(RenderToTexture) 渲染到纹理(Render To Texture)是实现很多OpenGL高级效果的一个基础.本文记录了如何用CShar ...
- OpenGL帧缓存对象(FBO:Frame Buffer Object)(转载)
原文地址http://www.songho.ca/opengl/gl_fbo.html 但有改动. OpenGL Frame BufferObject(FBO) Overview: 在OpenGL渲染 ...
- 在斜坡上哪个物体滚的最快_人教版一年级上册 第十七课 会滚的玩具
同学们好,欢迎来到美术课堂!你们喜欢会滚的玩具吗?你们了解它们滚动的原理吗?今天我们就来一起制作会滚的玩具,一起来了解它们背后的小秘密吧! 教材展示 教案参考 01 教材分析 <会滚的玩具> ...
- NeHe OpenGL教程 第三十七课:卡通映射
转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...
- python六十七课——网络编程(基础知识了解)
网络编程: 什么是网络编程? 网络:它是一种隐形的媒介:可以将多台计算机使用(将它们连接到一起) 网络编程:将多台计算机之间可以相互通信了(做数据交互) 一旦涉及到网络编程,划分为两个方向存在,一方我 ...
- Asp.Net Web API 2第十七课——Creating an OData Endpoint in ASP.NET Web API 2(OData终结点)...
原文:Asp.Net Web API 2第十七课--Creating an OData Endpoint in ASP.NET Web API 2(OData终结点) 前言 很久没更新博客了,加上刚过 ...
最新文章
- 机器学习、数据科学、人工智能、深度学习和统计学之间的区别!
- 基于MTCNN的人脸自动对齐技术原理及其Tensorflow实现测试
- 服务行为 之 并发与实例化
- 网页版nfc_苹果5大系统升级新特性浓缩汇总!秋季5G版iPhone稳了
- 葫芦全身都是宝的飞鸽传书2011
- mysql json字段的使用与意义
- hive拉链表实现方案一
- 好用的 curl 抓取 页面的封装函数
- 2022大众点评商家数据
- dosbox运行C语言,DosBox的基本设置和安装
- echarts全国各市地图坐标
- 【JPA/ddl-auto】关于JPA下hibernate通过设置ddl-auto完成数据库自动创建表格
- Aleo Wagyu钱包
- 免费下载数据集(转载)--大数据学习用
- 版本管理工具Subversion Edge的备份恢复与数据迁移方案
- python图书推荐系统_在线图书推荐系统的实现含源码(协同过滤)
- 工作流activiti
- BeanCurrentlyInCreationException: Error creating bean
- GIS算法:3_拓扑空间关系计算模型DE-9IM
- 00后大学生:无穷小微积分教材何在?
热门文章
- 【小程序专栏】第一个uniapp项目编译到微信开发者工具以及android真机运行
- 回文序列(水题,字符串操作)
- linux卸载python_linux安装和卸载python3
- 毕业生有1/3去了BAT,华工计算机实力如何?
- 手机提醒便签设置周末免打扰模式在哪里
- 中式红木家装,感受到高贵别致的生活品位
- 计算机专业对手速要求高吗,想好玩星际争霸2 需要什么配置,手速要达到多少比较好呢...
- HTML+CSS如何实现奔跑的小熊的动画?
- python绘制三维散点图(已验证)
- 【实战】我背着女朋友,用 Python 偷偷抓取了她的行踪