glsl更新2D纹理的特定行

时间:2012-06-08 23:23:01

标签: opengl glsl shader textures

我正在使用附加FBO和纹理的“渲染到纹理”功能。

我的问题是在片段着色器中我不知道如何写入2D纹理的特定行。我确实有哪一行的信息(由一个统一的浮点变量表示),但我不知道如何在那里绘制。

这可能吗?或者,知道碎片着色器中我的位置的好方法是什么?

我的全球想法是将1D纹理从上到下渲染为2D纹理。每个进化步骤由片段着色器计算(usiong渲染到纹理乒乓方法,有2个FBO)

2 个答案:

答案 0 :(得分:1)

我认为片段着色器不适合这个。

如果您只想写入FBO的一行,是否不能将绘制调用的顶点设置为仅重叠您想要绘制的像素?

答案 1 :(得分:1)

您可以在片段着色器中使用discard;来丢弃您不想要的片段。像

这样的东西
if (gl_FragCoord.y != row_to_keep)
    discard;

然后正常渲染你的场景,你最终只会输出一行输出。