我正在使用带有 GLSL 着色器的 OpenGL 来进行一些图像处理。我基本上使用带有正交投影的帧缓冲区来多次渲染我的图像(每个都有不同的片段着色器设置)。
然后我有 2 个带有纹理的帧缓冲区,我在它们之间来回渲染(例如,tex1 连接到 fb1,tex2 连接到 fb2。第一遍将输入纹理渲染到 fb1,第二遍将 tex1 渲染到 fb2,第三遍将 tex2 渲染到 fb1... 来回),直到最后一次从任何纹理渲染到输出帧缓冲区。
所有这些都是使用正交投影完成的,因此不会丢失任何图像。在调整窗口大小之前,这一切都很好。如果我将窗口的高度降低一半,则图像最终仅绘制在左侧窗口的上半部分(这是一次通过,2 次通过,它将仅在窗口的顶部 1/4 结束)。谁能理解为什么会这样?
第二张图片是在将窗口大小调整为原始高度的 3/4 之后
http://i567.photobucket.com/albums/ss112/davidc538/rtip1.png
http://i567.photobucket.com/albums/ss112/davidc538/rtip2.png