Python 3下的OpenGL 3+
我想用Python写一个可视化程序,用来展示一些复杂的科学数据。几年前我在Objective-C/Cocoa/OpenGL中做过类似的事情。这个可视化程序需要用到一些炫酷的着色器程序,所以至少需要OpenGL 3.0。此外,我还需要绘制一个窗口,并处理一些鼠标和键盘的操作。如果能有一些图形界面的小部件就更好了,但这不是必须的。最好是支持Python 3。
我查了一些库:
- PyOpenGL,但它不支持窗口、鼠标和键盘的操作。
- PyGlet,只支持Python 2.7。
- PyQt,只支持OpenGL 2.0。
- PySide,基本上已经不再更新,停留在Qt 4.7。
- wxPython,只支持Python 2.7。
- PyGame,基本上也不再更新。
你知道有没有什么库可以在Python 3中实现现代的OpenGL和窗口处理吗?
1 个回答
1
我推荐使用PyOpenGL加上PyQt。你也可以考虑用Python配合Pyglet或者wxPython。
PyOpenGL(是Mike Fletcher版本的,对吧?)是我知道的最好的Python OpenGL接口。它支持OpenGL 3和4,而且用起来非常顺手,符合Python的风格。
PyQt本身只支持OpenGL 2,但PyOpenGL可以在PyQt的环境中运行。因为PyQt有Python 3的版本,所以这组合应该能满足你的需求。
在图形界面方面,我更喜欢wxPython,不过正如你提到的,它还没有更新到Python 3。你可以看看wxPython Phoenix项目,但那还是在不断开发中。
Pyglet也挺不错,但它的图形界面功能比wxPython或PyQt少。可以把它想象成GLUT的替代品。Python 3的版本现在还在测试阶段,但因为不是完全重写,我预计很快就会稳定下来。
希望这些信息对你有帮助。