【发布时间】:2019-08-12 16:10:21
【问题描述】:
我的情况是,我有一个 (n+1)x(n+1) 纹理附加到帧缓冲区。 我的想法是分两遍更新这个纹理。
绘制一个全屏四边形并使用剪刀测试来屏蔽最外面的 1 个像素,因此我写入纹理的 n x n 'inner'。
第二遍,我绘制线图元以写入最外层像素,并使用第 1 遍的结果作为输入更新相同的纹理。这一步的计算取决于第一遍计算的内部 (n x n) 网格的状态。
在第二遍中,我将绑定第一遍的结果以进行读写。我知道根据 OpenGL,这会产生未定义的行为,但由于我从不同时从同一个纹素读取和写入,我认为它可以工作。
这样做是个好主意,还是画一个全屏四边形更好,然后在我的 glsl 着色器中进行如下检查:
if (gl_FragCoord.x == 0.5 || gl_FragCoord.x == n + 0.5){
...
}
【问题讨论】:
标签: opengl-es glsl textures framebuffer opengl-es-3.0