繁体   English   中英

用Python打开OpenGl

[英]OpenGl with Python

我目前正在使用OpenGL的课程,到目前为止我一直在使用C语言进行所有程序。 我在Fedora和OpenGL上安装了Python,但是当我在Python代码中调用OpenGL命令时,我遇到了分段错误 我不知道为什么会这样。

只是为了避免“只使用C”注释,这就是为什么我要使用Python:

我想要从C切换到Python有几个原因,但主要原因是因为我们即将开始编写光线跟踪器,我想使用类来使我更容易。 既然我讨厌用C ++编写类,而C语言中的结构看起来有点疯狂,我想我会尝试Python。 我一直在寻找再次使用Python的理由,因为它已经有一段时间了。

谢谢你的帮助。

您可能还想考虑使用Pyglet而不是PyOpenGL。 它是本地平台上本机OpenGL库的ctypes包装器,以及窗口支持(应该处理你想要使用GLUT的大部分内容。) pyglet-users列表非常活跃且非常有用。

好吧,我不知道这些是原始海报正在使用的库,但我在使用PyOpenGL的宠物项目(使用C ++和Python的图形引擎)中看到了相同的问题。

如果PyOpenGL是在加载python脚本之后创建的,那么PyOpenGL没有正确地获取渲染上下文(我首先加载脚本,然后从我的C ++代码中调用Python方法)。

如果在加载Python脚本之前初始化显示并创建OpenGL渲染上下文,则不会出现此问题。

您使用的OpenGL库是什么? 什么窗口库? 什么版本的Python?

最有可能的原因是我可以想到你的窗口库(SDL或你正在使用的任何东西)在你开始调用它之前没有初始化OpenGL。

脚本永远不会导致分段错误。 但首先要看看你的内核和kmod视频驱动程序的工作属性...扩展模块会导致“分段错误”。

我们既没有关于随机分段错误的想法。 没有足够的信息。 你用什么python库用于opengl? 你怎么用它们? 你能告诉我们你的代码吗? 这可能是微不足道的,但我的上帝 - 技能最终只是告诉我这一点。

Raytracer在python中? 我更喜欢在C中使用那些结构。 但是,我假设你不打算做一个实时的光线跟踪器,这样就可以了。

也许你正在调用一个需要一个活动的OpenGL上下文的OpenGL函数,而没有一个? 那应该不一定会崩溃,但我想可能会崩溃。 如何设置这样的上下文取决于平台,自从我使用Python的GL以来已经有一段时间了(当我这样做时,我也使用了GTK +,这使得事情复杂化)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM