谁知道这个GLSL函数会产生什么坐标?

时间:2013-03-23 02:18:52

标签: opengl graphics glsl

我正在尝试使用WPF中的像素着色器,我想试用这段代码:

-1.0 + 2.0 * gl_FragCoord.xy / resolution.xy

但我不确定会产生什么样的价值范围。我正在应用我的图像作为过滤器,我可以访问u和v值[0-1]。当我这样做时:

-1.0 + 2.0 * {U,V};

我没有得到相同的结果。我知道上面也必须是一个标准化的值范围,但不确定-1到1,还是0到1等。

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

  • gl_FragCoord.xy / resolution.xy为您提供范围[0,1]。
  • 乘以2可得到范围[0,2]。
  • Substracting 1为您提供范围[-1,1]

例如: http://glsl.heroku.com/e#7712.0

答案 1 :(得分:0)

像编译器一样阅读这个。 -1.0 + 2.0缩小为1.0。然后该声明变为1.0 * glFragCoord.xy / resolution.xy1 * x = x,鉴于此,等式变为glFragCoord.xy / resolution.xy

实际上,你最终将获得[0,1 /分辨率]的范围。

如果你的意思是-1.0 + (2.0 * glFragCoord.xy / resolution.xy),那么你有[0,2 /分辨率],减去1会变成[-1,(2 /分辨率)-1]。