2011-07-11 221 views
5

我正在使用筆記本電腦上的OpenGL應用程序。當我嘗試顯示單色圖像(相當大)時,我的應用程序會顯示大量黑白無法辨認的圖案。我有一種預感,可能是因爲我的舊GeForce Go 7950 GTX(512 MB)對於我的應用來說太舊了,並且認爲問題是由於framebuffer對象大小的限制 - 是否有辦法找出最大的FBO是?最大OpenGL FrameBuffer對象大小限制?

+1

您可以使用[gDebugger](http://www.gremedy.com/download.php)(它是免費的)來調試此類問題。 –

回答

7

OpenGL中framebuffer大小沒有最大限制。該限制是您可以附加到它的最大紋理或渲染緩衝區。

然而,有一個最大的視口尺寸,使用GL_MAX_VIEWPORT_DIMS得到它,但根據OpenGL規範,無論如何,視口默默地夾住了最大尺寸,不應該引起毛刺。 https://www.opengl.org/sdk/docs/man/html/glViewport.xhtml

+0

作爲一個尺寸說明:'GL_MAX_VIEWPORT_DIMS'的值不一定是POT(它通常在桌面設備上*是*,但例如我在NVIDIA Tegra 3上獲得了3839 x 3839),但在某些平臺上(OpenGL ES on手機主要是)使用NPOT紋理(甚至是非方形POT紋理)可以並且會造成麻煩 - 因此我建議讓最近的POT值低於兩者中較大的一個(最大H/W,例如對於T3它會是2048),並將其用作創建FBO的H&W的上限。這固定了我得到的一個晦澀的'GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT'錯誤。 – vaxquis

3
GLuint dims[2]; 
glGetIntegerv(GL_MAX_VIEWPORT_DIMS, &dims[0]); 

這給你一個視口的最大寬度/高度。