Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 英特尔高清图形3000上的PyOpenGL访问冲突_Python_Opengl_Intel_Pyopengl - Fatal编程技术网

Python 英特尔高清图形3000上的PyOpenGL访问冲突

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

我对使用英特尔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 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)