我想开始学习OpenGL,但我不想再学一门语言来实现它。我已经相当熟练地掌握了Python并且喜欢这种语言。我只是想知道它跟常规API有多接近?我是否能够轻松地按照教程和书籍进行学习,而不会遇到太多麻烦?
我知道C++能提供更好的性能,但是对于仅仅学习来说,使用PyOpenGL是否可行呢?
虽然我自己没有太多OpenGL编程经验,但我认为作为学习目的,PyOpenGL是一个不错的选择。主要原因是像大多数其他OpenGL封装包一样,PyOpenGL只是OpenGL API的薄封装。
PyOpenGL的一个很大的好处是,在C语言中你必须担心调用正确的glVertex3{dfiX}
命令,而Python允许你只需写glVertex3(x,y,z)
,而不用担心告诉Python你传递了什么类型的参数。这听起来可能不像什么大不了的问题,但使用Python的鸭子类型通常比过于关注静态类型更简单。
几乎所有的OpenGL方法都被包装成Python方法,因此,虽然你会用Python编写,但你将使用的算法和方法调用与在任何其他语言中编写OpenGL相同。由于你正在使用Python,所以你将有更少的机会犯下"愚蠢的"错误,例如指针使用、内存管理等,如果你要学习C或C++中的API,这些错误将花费你大量时间。
顺便说一下,我已经做了足够的OpenGL编程和大量的DirectX编程,但我专注于C++,只在某些算法测试、工具和脚本中使用Python。