美文网首页
理解GLSL内部变量gl_FragCoord

理解GLSL内部变量gl_FragCoord

作者: 大浪捉鱼 | 来源:发表于2019-12-20 18:32 被阅读0次

相对于vertex shader里的gl_Position和fragment shader里的gl_FragColor, 同样是glsl内部变量的gl_FragCoord就比较少见。

1、gl_FragCoord是fragment shader的输入变量,只读。
2、gl_FragCoord是个vec4,四个分量分别对应x, y, z和1/w。其中,x和y是当前片元的窗口相对坐标,不过它们不是整数,小数部分恒为0.5。x - 0.5和y - 0.5分别位于[0, windowWidth - 1]和[0, windowHeight - 1]内。windowWidth和windowHeight都以像素为单位,亦即用glViewPort指定的宽高。w即为乘过了投影矩阵之后点坐标的w,用于perspective divide的那个值。gl_FragCoord.z / gl_FragCoord.w可以得到当前片元和camera之间的距离。

相关文章

  • 理解GLSL内部变量gl_FragCoord

    相对于vertex shader里的gl_Position和fragment shader里的gl_FragCol...

  • GLSL ES 中的存储变量修饰符(const/attribut

    GLSL ES 3.00 中支持的存储变量修饰符 GLSL ES 1.00 中支持的存储变量修饰符

  • OpenGL ES 着色器

    GLSL 着色器使用GLSL语言写的。 着色器以声明版本号开头,然后是输入、输出变量,uniform变量和main...

  • [OpenGL ES] - GLSL

    GLSL(OpenGL Shading Language) 类型 变量修饰符 使用GLSL 设置上下文 着色器程序...

  • 代码习惯养成

    方法内部优先建立内部变量(提取常量为变量),方便copy,更改,变量名详细更利于理解,内外逻辑解耦 方法请进行功能的拆解

  • 前端面试题

    1、闭包的理解 函数内部可以读取函数外部的全局变量;在函数外部无法读取函数内的局部变量。 函数内部声明变量的时候...

  • 着色器基础

    GLSL 变量类型与声明 GLSL常见的基本数据类型为: 类型描述floatIEEE32位浮点数doubleIEE...

  • JS闭包理解

    闭包的概念 闭包就是能够读取其他函数内部变量的函数。 一、变量的作用域 要理解闭包,首先必须理解Javascrip...

  • GLSL

    一、GLSL语法 三种变量修饰符 uniform attribute varying 1. uniform ...

  • 通过例子理解JS闭包

    理解闭包的前提是对JS变量作用域的熟悉,变量作用域包括全局变量和局部变量。 简要说明:函数内部能够访问全局变量,函...

网友评论

      本文标题:理解GLSL内部变量gl_FragCoord

      本文链接:https://www.haomeiwen.com/subject/iciinctx.html