6

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

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

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

我想知道这一点的原因是我想做一条虚线,虚线在屏幕空间,而不是世界空间。

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

4

1 回答 1

4

没有你想要的等价物。但实际上,这并不难。只需在行的一端传递值 0,在另一端传递 1。让插值告诉你沿着这条线有多远。这将为您提供您想要的等价物。

当然,它不会对您在屏幕空间中绘制虚线有太大帮助,但gl_PointCoord也不会帮助您(因为它只像这个值一样从 [0, 1] 开始)。

但是你要求相当于 的行gl_PointCoord,我给了你。

于 2012-04-30T21:54:58.403 回答