Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在使用 FBO 和附加的纹理使用“渲染到纹理”功能。
我的问题是在片段着色器中我不知道如何写入 2D 纹理的特定行。我确实有哪一行的信息(由一个统一的浮点变量表示),但我不知道如何在那里绘制。
这可能吗?或者有什么好方法可以知道我在片段着色器中的位置?
我的全局想法是从上到下将 1D 纹理的演变渲染为 2D 纹理。每个进化步骤由片段着色器计算(使用渲染到纹理乒乓方法,具有 2 个 FBO)
我认为片段着色器不适合这个。
如果您只想写入 FBO 的单行,您不能将绘制调用的顶点设置为仅与您要绘制的像素重叠吗?
您可以discard;在片段着色器中使用来丢弃您不想要的片段。就像是
discard;
if (gl_FragCoord.y != row_to_keep) discard;
然后正常渲染你的场景,你最终只会写出一行输出。