Python 英特尔高清图形3000上的PyOpenGL访问冲突
我对使用英特尔HD3000图形芯片组的Windows 8 64位笔记本电脑上的PyOpenGL 3.0.2存在问题。对Python 英特尔高清图形3000上的PyOpenGL访问冲突,python,opengl,intel,pyopengl,Python,Opengl,Intel,Pyopengl,我对使用英特尔HD3000图形芯片组的Windows 8 64位笔记本电脑上的PyOpenGL 3.0.2存在问题。对glGenBuffers(1)(在正确的GL初始化后)的任何调用都会崩溃: 同样的脚本也适用于其他机器 我有最新版本的GPU驱动程序(15.28.12.64.2932),它支持OpenGL 3.1 有什么想法吗 以下是示例脚本: import sys from OpenGL.GLUT import * from OpenGL.GL import * from OpenGL.GLU
glGenBuffers(1)
(在正确的GL初始化后)的任何调用都会崩溃:
同样的脚本也适用于其他机器
我有最新版本的GPU驱动程序(15.28.12.64.2932),它支持OpenGL 3.1
有什么想法吗
以下是示例脚本:
import sys
from OpenGL.GLUT import *
from OpenGL.GL import *
from OpenGL.GLU import *
def init():
buffer = glGenBuffers(1)
glutInit(sys.argv)
glutInitWindowSize(600, 600)
glutCreateWindow("Sample")
init()
glutMainLoop()
尽管您的驱动程序支持OpenGL3.1,但默认情况下Glut将为您提供OpenGL2.0上下文。您将需要一个3.1 cpntext,可能是这样的:
glutInitContextVersion(3, 1)
glutInitContextFlags(GLUT_FORWARD_COMPATIBLE)
glutInitContextProfile(GLUT_CORE_PROFILE)
如果没有合适的3.1上下文,任何3.1特定的调用都会导致崩溃。我最终解决了这个问题,卸载了我的整个Python 64位发行版,安装了Python 32位和所有32位库。此外,我还必须使用pyopengl3.1.a。首先,我不知道64位安装出现问题的原因。我不认为它可能是重复的,
glGenBuffers
在OpenGL.GL.*
中,而不是OpenGL.GL.ARB.*
中。此外,在我的系统上没有OpenGL.GL.ARB.vertex\u buffer\u object
。我刚刚尝试过,我遇到了完全相同的问题。另外,我对PyQt4(使用QGLWidget)也有同样的问题,所以我认为它不是Glut特定的。在大多数平台上,当您启动OpenGL时,最多只能有一个2.x上下文。如果您试图在没有正确上下文的情况下使用3.x功能,您将崩溃。确定。不过我有两个问题:*当我使用glGetString(GL\u版本)
时,我得到了OpenGL 3.1:这是否保证OpenGL 3.1真的被加载了?如果没有,我如何知道确切的版本?*我认为glGenBuffers
是OpenGL1.5的核心,所以无论我使用的是OpenGL2还是OpenGL3.1,它都应该工作,对吗?
glutInitContextVersion(3, 1)
glutInitContextFlags(GLUT_FORWARD_COMPATIBLE)
glutInitContextProfile(GLUT_CORE_PROFILE)