因此,在OpenGLES-2中,片段着色器可以访问 gl_PointCoord ,以查看片段在点基元上的位置。
还有 gl_FragCoord 来查看片段在帧缓冲区中的位置。
但是, gl_LineCoord 在哪里? 它不存在,那么我的片段着色器如何知道片段在线基元上的位置?
我想知道这个的原因是,我想做一个虚线,屏幕空间中有破折号,而不是世界空间。
我目前可以想到的唯一方法是使用一个sqCo的fragCoord.x ^ 2 + fragCoord.y ^ 2但如果只有gl_LineCoord可用,这听起来很昂贵且不必要。
答案 0 :(得分:4)
没有你想要的东西。但实际上,这并不困难。只需在行的一端传递值0,在另一端传递1。让插值告诉你沿着这条线的距离。那会给你相当于你想要的东西。
当然,在屏幕空间中绘制虚线并不会对你有太多的帮助,但是gl_PointCoord
也不会对你有所帮助(因为它只是来自[0,1]就像这样值)。
但你要求等同于gl_PointCoord
的行,我给了你。