【发布时间】:2022-01-06 10:43:06
【问题描述】:
我一直想在 opengl(使用 c++)中使用帧缓冲区制作编辑菜单。然后我在菜单空间中渲染一些按钮,然后渲染帧缓冲区。因此,在创建帧缓冲区时,我只希望它能够仅读取和绘制屏幕的一部分(例如 X1 和 X2 以及 Y1 和 Y2 之间的坐标),然后将其转换为纹理附件。 问题是我不如何渲染与窗口尺寸不同大小的帧缓冲区。所以我需要知道如何实现这一点。
我认为需要更改的代码是这 3 行:
glRenderBufferStorageMultiSample(GL_FRAMEBUFFER, 4, GL_RGB, SCREEN_WIDTH, SCREEN_HEIGHT);glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, SCREEN_WIDTH, SCREEN_HEIGHT, 0, GL_RGB, GL_UNSIGNED_BYTE, NULL);glBlitFrameBuffer(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT, 0,0,SCREEN_WIDTH, SCREEN_HEIGHT, GL_COLOR_BUFFER_BIT, GL_NEAREST);
【问题讨论】: