PyOpenGL是开始学习opengl编程的好地方吗?

时间:2010-06-03 00:28:14

标签: python graphics pyopengl

我想开始学习OpenGL,但我真的不想学习另一种语言。我已经非常精通python并且喜欢这门语言。我只是想知道它与普通api有多接近?我是否能够轻松地轻松地按照教程和书籍进行操作?

我知道C ++可以提供更好的性能,但是对于刚学习我可以用PyOpenGL出错吗?

2 个答案:

答案 0 :(得分:13)

有一点需要注意,我自己做了很少的OpenGL编程,我相信为了学习,PyOpenGL是一个不错的选择。主要原因是PyOpenGL与大多数其他OpenGL包装器一样,只是:OpenGL API的一个薄包装器。

PyOpenGL的一大好处是,在C中你必须担心调用正确的glVertex3{dfiX}命令,Python允许你只写glVertex3(x,y,z)而不用担心告诉Python你传递了什么类型的参数这可能听起来不是什么大问题,但使用Python的鸭子打字通常要简单得多,而不是过分关注静态打字。

OpenGL方法几乎完全包含在Python方法中,所以当你用Python编写时,你将使用的算法和方法调用与用任何其他语言编写OpenGL相同。但是,既然你是用Python编写的,那么通过适当的指针使用,内存管理等来减少犯错误的机会就会少得多,如果你用C或C ++学习API,这会花费你的时间。 ,例如。

答案 1 :(得分:-1)

  

PyOpenGL

我认为这不是一个好选择。 在我的观点在C / C ++中,更容易使用OpenGL代码 - 从简单的应用程序开始,然后添加着色器,然后添加一些几何函数,制作纹理/几何生成器,构建场景通过CSG等你知道 - 玩得开心,玩代码,试验和学习过程中的东西。老实说,我不认为自己在python中这样做。当然可以在Python中进行OpenGL编程,但我认为没有理由去实现它。另外几个OpenGL函数将内存指针作为参数,虽然可能有一个类(或十几个替代品),但在C / C ++中提供传统的处理方式时,我没有理由使用它们,特别是当我想到包装python代码用于将那些向量或数组传递给OpenGL函数时。它看起来就像是在没有真正理由的情况下让事情变得更复杂。此外,还有明显的性能下降,尤其是当您使用“RAW”OpenGL时。

此外,如果你要制作游戏,你很可能必须使用C ++或其他一些“非python”语言。

P.S。我已经做了足够的OpenGL编程,很多DirectX编程,但我专注于C ++,并且仅将python用于某些算法测试,工具和脚本。