繁体   English   中英

仅将 window 的一部分渲染到 opengl 中的帧缓冲区

[英]Rendering only a part of the window onto a framebuffer in opengl

我一直想在 opengl(使用 C++)中使用帧缓冲区制作编辑菜单。 然后我在菜单空间中渲染一些按钮,然后渲染帧缓冲区。 因此,在创建帧缓冲区时,我只希望它能够读取和绘制屏幕的一部分(比如 X1 和 X2 以及 Y1 和 Y2 之间的坐标),然后将其转换为纹理附件。 问题是我不知道如何渲染尺寸不同于 window 尺寸的帧缓冲区。 所以我需要如何实现这一点。

我认为需要更改的代码是这 3 行:

  1. glRenderBufferStorageMultiSample(GL_FRAMEBUFFER, 4, GL_RGB, SCREEN_WIDTH, SCREEN_HEIGHT);
  2. glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, SCREEN_WIDTH, SCREEN_HEIGHT, 0, GL_RGB, GL_UNSIGNED_BYTE, NULL);
  3. glBlitFrameBuffer(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT, 0,0,SCREEN_WIDTH, SCREEN_HEIGHT, GL_COLOR_BUFFER_BIT, GL_NEAREST);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM