El objeto OpenGL PyOpenGL Framebuffer no funciona: faltan glGenFramebuffers
Frecuentes
Visto 899 equipos
0
I have two systems with seemingly same OpenGL
version and extensions support but Framebuffer
s don't seem to be working on one of them.
A system with the Intel HD 4000 Graphics Card
.(FRAMEBUFFER WORKS HERE)
Here is the output of glxinfo | grep OpenGL
:
OpenGL vendor string: Intel Open Source Technology Center
OpenGL renderer string: Mesa DRI Intel(R) Ivybridge Mobile
OpenGL core profile version string: 3.3 (Core Profile) Mesa 10.1.0
OpenGL core profile shading language version string: 3.30
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 3.0 Mesa 10.1.0
OpenGL shading language version string: 1.30
Esta es la salida de glxinfo | grep framebuffer
:
GLX_ARB_framebuffer_sRGB, GLX_ARB_multisample,
GLX_EXT_create_context_es2_profile, GLX_EXT_framebuffer_sRGB,
GLX_ARB_framebuffer_sRGB, GLX_ARB_get_proc_address, GLX_ARB_multisample,
GLX_EXT_framebuffer_sRGB, GLX_EXT_import_context,
GLX_ARB_framebuffer_sRGB, GLX_ARB_get_proc_address, GLX_ARB_multisample,
GLX_EXT_create_context_es2_profile, GLX_EXT_framebuffer_sRGB,
GL_ARB_fragment_shader, **GL_ARB_framebuffer_object**,
GL_ARB_framebuffer_sRGB, GL_ARB_get_program_binary,
GL_EXT_draw_instanced, GL_EXT_framebuffer_blit,
GL_EXT_framebuffer_multisample, GL_EXT_framebuffer_multisample_blit_scaled,
GL_EXT_framebuffer_sRGB, GL_EXT_packed_depth_stencil, GL_EXT_packed_float,
GL_ARB_fragment_shader, GL_ARB_framebuffer_object,
GL_ARB_framebuffer_sRGB, GL_ARB_get_program_binary,
GL_EXT_framebuffer_blit, GL_EXT_framebuffer_multisample,
GL_EXT_framebuffer_multisample_blit_scaled, GL_EXT_framebuffer_object,
GL_EXT_framebuffer_sRGB, GL_EXT_gpu_program_parameters,
Here is another system where Framebuffer
is NO siendo generado.
Salida de glxinfo | grep OpenGL
:
OpenGL vendor string: Intel Open Source Technology Center
OpenGL renderer string: Mesa DRI Intel(R) Ivybridge Mobile
OpenGL core profile version string: 3.3 (Core Profile) Mesa 10.3.0-devel (git-ecee4c4 saucy-oibaf-ppa)
OpenGL core profile shading language version string: 3.30
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 3.0 Mesa 10.3.0-devel (git-ecee4c4 saucy-oibaf-ppa)
OpenGL shading language version string: 1.30
Salida de glxinfo | grep framebuffer
:
GLX_ARB_framebuffer_sRGB, GLX_ARB_get_proc_address, GLX_ARB_multisample,
GLX_EXT_fbconfig_packed_float, GLX_EXT_framebuffer_sRGB,
**GL_ARB_framebuffer_object**, GL_ARB_framebuffer_sRGB,
GL_EXT_draw_instanced, GL_EXT_framebuffer_blit,
GL_EXT_framebuffer_multisample, GL_EXT_framebuffer_multisample_blit_scaled,
GL_EXT_framebuffer_sRGB, GL_EXT_packed_depth_stencil, GL_EXT_packed_float,
GL_ARB_fragment_shader, GL_ARB_framebuffer_object,
GL_ARB_framebuffer_sRGB, GL_ARB_get_program_binary,
GL_EXT_framebuffer_blit, GL_EXT_framebuffer_multisample,
GL_EXT_framebuffer_multisample_blit_scaled, GL_EXT_framebuffer_object,
GL_EXT_framebuffer_sRGB, GL_EXT_gpu_program_parameters,
El GL_ARB_framebuffer_object
is the extension which enables Framebuffer
apoyo con OpenGL
. Both systems have them but still one does not work.
Estaba usando Python
(PyOpenGL
) and used the following function to check what all functions exist using print dir(OpenGL.GL)
and saving the output to a file. I was surprised to find that despite the existence of the Framebuffer extension, the function
glGenFramebuffers
Estaba faltando.
¿Cuál podría ser el problema aquí?
1 Respuestas
0
On Python 2.7.5+
, la Framebuffer
objects are available in a separate module.
El módulo es: OpenGL.GL.framebufferobjects
mientras que en Python 2.7.6
and above, it is available directly inside: OpenGL.GL
.
contestado el 29 de mayo de 14 a las 10:05
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas opengl gpu framebuffer pyopengl or haz tu propia pregunta.
Ver Problema (8) aquí "Unlike most ARB extensions, this is a strict subset of functionality already approved in OpenGL 3.0. This extension exists only to support that functionality on older hardware that cannot implement a full OpenGL 3.0 driver."
GL_ARB_framebuffer_object
does not do what you think it does, a GL 3.0 implementation already guarantees this functionality and the FBO extension does not change anything. The only reason you would ever check for that extension is if you do not have a 3.0 implementation. - Andon M. ColemanNow, as for your actual question... rather than printing the output of
glxinfo
, is there any chance you could check these things during your GL program's runtime? You could be picking a pixel format that throws you off the GL 3.0 path on one of those pieces of hardware. - Andon M. Coleman@AndonM.Coleman It was just in some other module which is quite strange. - psiyum