glsl gl_FragCoord 与 屏幕关系
转载链接: http://blog.csdn.net/jinghouxiang/article/details/50751125
- 标签:
- OpenGL /
- GLSL /
- Shader
运行环境:Android
ShaderToy基本上 都是用fragment shader 对栅格化后的像素进行处理。 大部分会用到纹理来丰富最终渲染结果的形状和质地,有些也会用到声音,键盘等外部输入信息。 但是,最终都是归结为对栅格化区域内的每个像素进行处理,因此,我们首先来认识gl_FragCoord这个内置变量以及其与屏幕坐标的关系。
- precision mediump float ;
- uniform mat4 uMVPMatrix;
- attribute vec4 aPosition;
- void main(){
- position = vec3 (uMVPMatrix*aPosition);
- gl_Position = uMVPMatrix*aPosition;
- }
- precision mediump float ;
- uniform vec2 screenSize; // step 1
- void main()
- {
- vec2 uv = vec2(gl_FragCoord.xy/screenSize.xy); // step 2
- //Calculate polar coordinates
- float r = length(uv);
- float c = 0.0;
- if(uv.x>0.98 &&uv.x<1.0 ) // step 3
- {
- c = 1.0;
- }
- if(uv.y>0.98 &&uv.y<1.0 ) // step 4
- {
- c = 1.0;
- }
- //Calculate the final color mixing lines and backgrounds.
- vec3 bg = mix(vec3(0.93 , 0.71 , 0.62 ), vec3(0.9 , 0.44 , 0.44), r); // step 5
- bg = mix(bg, vec3 (0.9 , 0.91 , 0.62 ), c); // step 6
- gl_FragColor = vec4(bg, 1.0);
- }
![](/assets/blank.gif)
c = 1.0;
}
if (uv.y> 0.09 &&uv.y< 0.11 ) // step 4
{
c = 1.0;
}
![](/assets/blank.gif)
glsl gl_FragCoord 与 屏幕关系相关推荐
- (转)跨越Opengl和D3D的鸿沟
原帖地址: http://www.cnblogs.com/gongminmin/archive/2011/07/15/2107290.html 多年来,在论坛和各个网站上不断能看到拿OpenGL和D3 ...
- 新媒体视频导演 - 导演学前班
为什么80%的码农都做不了架构师?>>> 导演学前班 1.你能学到什么 系统理论知识和导演思维 影视行业最好的时代 门槛空前降低 举例1:年轻作家-郭敬明<小时代> ...
- IOS和Android开发的一些个人感受
傲娇的苹果,卖萌的安卓. 从个人心理来说,Android的小机器人萌的入人心, 咬了一口的苹果更注重了设计感,简约精致. 如果有出两系系统的周边,我觉得还是android买点比较多点~ 机器人比较好坳 ...
- vue中设置html的fontsize,vue中rem布局使用js动态改变fontsize
rem布局原理:使用js动态改变html的字体大小+rem的特性,来保证最初的设计图中每个元素的尺寸比例不变,以适用于不同尺寸的设备能够正常显示. (function (doc, win) { var ...
- 关于DirectX中的三角形拾取的的另一种方法
以前由于任务要求,曾对编写仿真环境中有简单的了解. 而三维转二维通过一定的转化时可以实现的,其中大多游戏引擎都是经过以下四步: 1.世界转换.世界转换是从物体的相对坐标转为世界坐标,包含物体以哪条轴转 ...
- 用python3编写彩虹的代码_在python的pygame设置彩虹弦:使用汉字变量及代码分析...
#---第1步---导出模块--- importpygame,sysfrom pygame.locals import * importmathimportcolorsys#---第2步--初始化游戏 ...
- python绘制彩虹花_在python的pygame设置彩虹弦:使用汉字变量及代码分析
#---第1步---导出模块--- importpygame,sysfrom pygame.locals import * importmathimportcolorsys#---第2步--初始化游戏 ...
- 网易雷火游戏测试实习一二三四面面经
面后复盘, 呦吼~ 四面 自我介绍 为什么选择游戏测试(情绪/兴趣+使命/责任感+性格 :自认为不必提自己的知识掌握程度好,因为面试的过程就是在考核你的知识.如果自夸掌握程度好,后面发挥不大理想的话, ...
- Android 多屏幕适配 dp和px的关系
一直以来别人经常问我,android的多屏幕适配到底是怎么弄,我也不知道如何讲解清楚,或许自己也是挺迷糊. 以下得出的结论主要是结合官方文档进行分析的https://developer.android ...
最新文章
- 使用睡袋_在户外一个关乎睡眠的重要因素——睡袋
- Python继承外另一种重用方式——组合
- 湘南学院校企计算机班,2020湘南学院重点学科名单特色专业有哪些?
- c、c++、Java和gcc写Hello World
- Linux下进程间通信概述
- 深入业务成为更好的软件架构师——信息化建设图鉴一二例
- php smarty入门,smarty 快速入门
- 防止Visual C++应用程序缓冲区溢出
- 为什么程序员如此“嫌弃”主干开发模式?
- php栏目页内容排序问题,Dedecms频道列表页栏目排序问题详解
- jq实现剪裁图片设置为头像
- Android 解决表情面板和软键盘切换时跳闪的问题
- 极大值极小值搜索设计五子棋
- MIL自动化单元测试
- 计算机考研 外部排序,2021考研408数据结构基础知识点:外部排序
- python计算标准差为什么分母要-1_标准差越大说明什么(样本标准差分母为何是n-1)...
- 矩特征、几何矩的定义
- vue项目接入e2e自动化测试
- 东芝复印机2303出现f070_东芝复印机维修模式及维修错误代码
- 微信开挂怎么防止封号_说我微信开挂怎么解决(做好这几点不封号)
热门文章
- vue中nbsp不显示空格问题
- 基于JAVA如家酒店管理系统计算机毕业设计源码+数据库+lw文档+系统+部署
- Android Makefile中inherit-product函数和include的区别
- Android自定义控件传送,使用 Leanback 传输控件
- 酷酷的滚动彩虹色文字
- 输出一个由*组成的三角形图案_我问遍整个设计院,居然没有一个人会画古建?...
- dubbo的group分组
- ♥♥C站最全NCRE四级数据库总结(时刻更新,建议收藏!)
- tomcat与java web开发技术详解第三版 光盘
- 基于 wemos d1 智能感应开盖垃圾桶