glBindTexture - returns 参数错误
glBindTexture - returns argument error
我正在从事增强现实项目。因此,用户应该使用网络摄像头,并在该帧上绘制一个立方体来查看捕获的视频。
这就是我卡住的地方,当我尝试使用 glBindTexture(GL_TEXTURE_2D,texture_background) 方法时,出现错误:
(
ArgumentError:参数 2::错误类型
GLUT 使用 (),{} 显示回调失败:返回 None 参数 2::错误类型
)
我完全被困住了,不知道该怎么办。该项目在 Python 2.7 中完成,我使用的是 opencv 和 PyOpenGl 3.1.0.
您可以在此找到代码 link :click here
提前致谢。
有趣的错误!所以我玩弄了你的源代码(顺便说一下,将来你应该直接将代码添加到你的问题中而不是作为单独的 link),问题实际上只是变量范围之一,而不是过剩或 opengl 的使用。问题是您的 texture_background
变量在 _draw_scene()
函数的范围内不存在。要验证这一点,只需尝试在 _draw_scene()
函数中调用 print texture_background
,您会发现它是 returns None
而不是所需的整数纹理标识符。
简单的 hack-y 解决方案是在使用之前调用 global texture_background
在您的 _handle_input()
函数.您还需要在程序的主要范围内定义 texture_background = None
(在 ##FOR CUBE FROM OPENGL
注释下方)。相同的全局注释适用于 x_axis
和 z_axis
。
话虽如此,该解决方案并不是那么好。 GLUT 要求的刚性结构具有所有这些预定义 glut*
函数,因此很难按照您在初始化应用程序方面可能希望的方式构建代码。我建议,如果您不是被迫使用 GLUT,请使用更灵活的替代方案,例如 pygame、pysdl2 或 pyqt,来创建您的上下文。
我正在从事增强现实项目。因此,用户应该使用网络摄像头,并在该帧上绘制一个立方体来查看捕获的视频。 这就是我卡住的地方,当我尝试使用 glBindTexture(GL_TEXTURE_2D,texture_background) 方法时,出现错误: ( ArgumentError:参数 2::错误类型 GLUT 使用 (),{} 显示回调失败:返回 None 参数 2::错误类型 ) 我完全被困住了,不知道该怎么办。该项目在 Python 2.7 中完成,我使用的是 opencv 和 PyOpenGl 3.1.0.
您可以在此找到代码 link :click here 提前致谢。
有趣的错误!所以我玩弄了你的源代码(顺便说一下,将来你应该直接将代码添加到你的问题中而不是作为单独的 link),问题实际上只是变量范围之一,而不是过剩或 opengl 的使用。问题是您的 texture_background
变量在 _draw_scene()
函数的范围内不存在。要验证这一点,只需尝试在 _draw_scene()
函数中调用 print texture_background
,您会发现它是 returns None
而不是所需的整数纹理标识符。
简单的 hack-y 解决方案是在使用之前调用 global texture_background
在您的 _handle_input()
函数.您还需要在程序的主要范围内定义 texture_background = None
(在 ##FOR CUBE FROM OPENGL
注释下方)。相同的全局注释适用于 x_axis
和 z_axis
。
话虽如此,该解决方案并不是那么好。 GLUT 要求的刚性结构具有所有这些预定义 glut*
函数,因此很难按照您在初始化应用程序方面可能希望的方式构建代码。我建议,如果您不是被迫使用 GLUT,请使用更灵活的替代方案,例如 pygame、pysdl2 或 pyqt,来创建您的上下文。