簡體   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