GLSL锥形线

时间:2012-02-28 04:40:36

标签: ios opengl-es glsl opengl-es-2.0 lines

我正在绘制许多GL_LINES基元,使用用GLSL编写的顶点和片段着色器对它们进行着色。我想要的是线条在alpha值的末端逐渐变细。也就是说,在该行的中心,alpha值应为1,但在每一端它应逐渐减小为0.

我想知道是否有一个不错的解决方案,不涉及首先将线分成几个顶点。也就是说,纯粹使用着色器完成的事情。

1 个答案:

答案 0 :(得分:0)

好吧,只需将值传递给行中的每个顶点即可。 0表示开始,1表示结束。让插值器在它们之间插值,然后将该值的绝对距离从0.5减去1减去α。或者,在GLSL中:

gl_FragCoord.a = 1 - (abs(value - 0.5) * 0.5);

其中value是从顶点着色器传递的值。为此,您无法呈现GL_LINE_STRIPGL_LINE_LOOP;它必须是GL_LINES