[英]Rendering only a part of the window onto a framebuffer in opengl
我一直想在 opengl(使用 C++)中使用幀緩沖區制作編輯菜單。 然后我在菜單空間中渲染一些按鈕,然后渲染幀緩沖區。 因此,在創建幀緩沖區時,我只希望它能夠讀取和繪制屏幕的一部分(比如 X1 和 X2 以及 Y1 和 Y2 之間的坐標),然后將其轉換為紋理附件。 問題是我不知道如何渲染尺寸不同於 window 尺寸的幀緩沖區。 所以我需要如何實現這一點。
我認為需要更改的代碼是這 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);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.