GLSL for OpenGL的窗口大小?

时间:2017-04-25 10:08:12

标签: opengl glsl

我是OpenGL的新手,并试图找出我的片段着色器。我的窗口中画了一个矩形,我想将它的上半部分用不同的颜色(比如蓝色),而不用硬编码像素的高度。

窗口高度为1000,在我的片段着色器中,我有:

heroku buildpacks:set heroku/python

矩形蓝色的上半部分为哪种颜色。但是如果我想从片段着色器中获取窗口高度而不是仅仅使用500像素呢?我初始化了 void main(){ if((gl_FragCoord.y) > 500) { color = vec3(.3, .3, 1); } else { color = fragmentColor; } ,我正在尝试使用uniform vec2 windowSize将窗口高度放在此变量中,但我不知道如何。

1 个答案:

答案 0 :(得分:0)

您描述的情况只是请求顶点着色器中的out float变量设置为矩形的当前Y坐标,该变量与X坐标以及您拥有的其他任何顶点属性一起传递通过OpenGL到你的着色器。

当它到达片段着色器(类型为in float)时,它会被插值,最有可能在[–1; 1]范围内。因此,要将上半部分涂成蓝色,您只需要检查该变量是否为正。

N.B。:如果您在3.x之前使用GLSL,out float VARIABLE_NAMEin float VARIABLE_NAME必须都是varying float VARIABLE_NAME