对于LINES,GLSL等效于gl_PointCoord是什么?

时间:2012-04-30 21:46:58

标签: glsl opengl-es-2.0

因此,在OpenGLES-2中,片段着色器可以访问 gl_PointCoord ,以查看片段在点基元上的位置。

还有 gl_FragCoord 来查看片段在帧缓冲区中的位置。

但是, gl_LineCoord 在哪里? 它不存在,那么我的片段着色器如何知道片段在线基元上的位置?

我想知道这个的原因是,我想做一个虚线,屏幕空间中有破折号,而不是世界空间。

我目前可以想到的唯一方法是使用一个sqCo的fragCoord.x ^ 2 + fragCoord.y ^ 2但如果只有gl_LineCoord可用,这听起来很昂贵且不必要。

1 个答案:

答案 0 :(得分:4)

没有你想要的东西。但实际上,这并不困难。只需在行的一端传递值0,在另一端传递1。让插值告诉你沿着这条线的距离。那会给你相当于你想要的东西。

当然,在屏幕空间中绘制虚线并不会对你有太多的帮助,但是gl_PointCoord也不会对你有所帮助(因为它只是来自[0,1]就像这样值)。

但你要求等同于gl_PointCoord的行,我给了你。