2

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

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

这可能吗?或者有什么好方法可以知道我在片段着色器中的位置?

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

4

2 回答 2

1

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

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

于 2012-06-08T23:30:26.273 回答
1

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

if (gl_FragCoord.y != row_to_keep)
    discard;

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

于 2012-06-09T03:39:30.580 回答