如下, 只要调用了 glClear(GL_COLOR_BUFFER_BIT); 一下两个绘图
rend_to_stage(stage, 0, 0, 300, 300, 0);
rend_to_stage(stage, 150, 150, 300, 300, 1);
就无法显示出叠加效果, z坐标是最后一个参数, 按理说, 首先清空颜色缓冲, 然后在 z = 0 的地方画一个大图, 坐标为 (0, 0, 300, 300), 然后再 z = 1 的上面画一个小图(150, 150, 300, 300), 显示效果应该是
, 然而显示的确实这样一个图:
; 这到底是什么原因呢
void display()
{
glClear(GL_COLOR_BUFFER_BIT);
rend_to_stage(stage, 0, 0, 300, 300, 0);
rend_to_stage(stage, 150, 150, 300, 300, 1);
glBindFramebuffer(GL_READ_FRAMEBUFFER, fbuf);
glBindFramebuffer(GL_DRAW_FRAMEBUFFER, 0);
glBlitFramebuffer(0, 0, 300, 300, 0, 0, 300, 300, GL_COLOR_BUFFER_BIT, GL_NEAREST);
glutSwapBuffers();
glBindFramebuffer(GL_DRAW_FRAMEBUFFER, fbuf);
}
|