有关GLSL中的gl_FragCoord
来源:互联网 发布:文本数据可视化方法 编辑:程序博客网 时间:2024/05/18 13:46
有关GLSL中的gl_FragCoord
在研究阴影映射的时候,我发现了一个很有意思的变量,它可以代替我们自己使用的varying变量,给我们带来方便。但是我们也需要了解它是如何计算的。
蒋彩阳原创文章,首发地址:http://blog.csdn.net/gamesdev/article/details/45062525。欢迎同行前来探讨。
gl_FragCoord是在片断着色器中一个隐藏的输入变量。它代表着NDC坐标下的片元坐标。它已经经过了单位化,即w分量已为1。在可编程的流水线中,通常是这样的:
下面可以通过下面的着色器代码来获得和gl_FragCoord相同的效果:
// MVP变换vec4 projectedPosition =projectionMatrix *viewMatrix *modelMatrix *vec4( finalPosition, 1.0 );// 透视除法(perspective division)vec4 normalizedPosition = projectedPosition / projectedPosition.w;// NDC坐标映射const mat4 ndcBiasMatrix = mat4( 0.5, 0.0, 0.0, 0.0, 0.0, 0.5, 0.0, 0.0, 0.0, 0.0, 0.5, 0.0, 0.5, 0.5, 0.5, 1.0 );vec4 ndcPosition = ndcBiasMatrix * normalizedPosition;
得出的ndcPosition其实和gl_FragCoord等价。
0 0
- 有关GLSL中的gl_FragCoord
- 关于GLSL的gl_FragCoord、gl_FragDepth以及深度计算
- 关于GLSL的gl_FragCoord、gl_FragDepth以及深度计算
- 学习ShaderToy第一天: glsl语言内置函数gl_FragCoord
- gl_FragCoord的xyzw
- OpenGL GLSL 中的法线变换
- GLSL学习中的小记录
- GLSL中的数据精度问题
- GLSL入门2 关于GLSL中的纹理贴图
- GLSL
- GLSL
- GLSL中的各种接口变量总结
- 有关ajaxpro中的AjaxMethod
- 有关C#中的foreach
- 有关xml中的xmlns
- 有关xml中的xmlns
- 有关web.xml中的
- 有关javascript中的this
- java.lang.ClassCastException:android.os.BinderProxy cannot be cast to...
- 数据库学习笔记系列(1)——表的建立、修改、删除
- 64位Linux上部署hadoop2.6.0的HDFS
- Redis集群 redis cluster in 3.0
- 中国移动互联网行业深度报告
- 有关GLSL中的gl_FragCoord
- 单例模式(Singleton)的6种实现
- 水水就好
- 用 Swift 制作一个漂亮的汉堡按钮过渡动画
- Android画带圆边的矩形
- Java Ant build.xml详解
- 硬盘分区表知识——详解硬盘MBR
- 用视图+存储过程解决复杂查询的排序分页问题
- EL