2011-07-11 11 views
5

Estoy trabajando en una aplicación OpenGL en mi computadora portátil. Mi aplicación muestra muchos patrones irreconocibles en blanco y negro cuando trato de mostrar una imagen monocromática (bastante grande). Tengo la corazonada de que mi vieja Geforce Go 7950 GTX (512 MB) es demasiado vieja para mi aplicación, y pensando que el problema se debió al límite de tamaño de objeto framebuffer, ¿hay alguna manera de averiguar qué puede hacer el FBO más grande? ¿ser?Límite máximo de tamaño de objetos OpenGL FrameBuffer?

+1

Puede usar [gDebugger] (http://www.gremedy.com/download.php) (es gratis) para solucionar estos problemas. –

Respuesta

7

No hay un límite máximo para el tamaño del framebuffer en OpenGL. El límite es la textura más grande o el buffer de representación que puede adjuntar a él.

Sin embargo, hay un tamaño máximo de ventana gráfica, obténgalo utilizando GL_MAX_VIEWPORT_DIMS; sin embargo, de acuerdo con las especificaciones de OpenGL, la ventana gráfica sujeta silenciosamente el tamaño máximo de todos modos y no debe causar problemas técnicos. https://www.opengl.org/sdk/docs/man/html/glViewport.xhtml

+0

como una nota de tamaño: el valor de 'GL_MAX_VIEWPORT_DIMS' no tiene que ser POT (normalmente * es * en dispositivos de escritorio, pero por ejemplo tengo 3839 x 3839 en NVIDIA Tegra 3), pero en algunas plataformas (OpenGL ES en móviles en su mayoría) utilizando texturas NPOT (o incluso texturas POT no cuadradas) pueden causar problemas, por lo que aconsejaría obtener el valor POT más cercano más bajo que el mayor de los dos (máximo H/W, por ejemplo, para T3 sería 2048) y lo usaría como un límite superior de ambos H & W del FBO que se está creando. Esto solucionó un oscuro error 'GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT' que recibía. – vaxquis

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

Eso le da el ancho/alto máximo de una ventana gráfica.

Cuestiones relacionadas