pyopengl:它能代替c++吗?

2024-05-15 05:29:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我要开始一门计算机图形学课程,我必须选择一种语言。

< >是C++与Python之间的选择。我对C++没有问题,Python是一个正在进行中的工作。所以我想沿着python的道路走下去,使用pyopengl作为图形部分。

不过,我听说那场演出是个问题。

是Python/pyopgl成熟到足以挑战C++的性能吗?

我知道这是一个漫长的过程,但是我想听听你对pyopengl使用的想法和经验。

提前谢谢。


Tags: 语言图形过程计算机经验性能课程pyopengl
3条回答

Python是一条路。由于所有opengl编程都是将数据上传到显卡RAM,然后使用opengl对其进行操作,因此python中的速度限制是没有意义的。此外,它使C++中的硬事物容易打开文件、图像、声音等。

至于上面提到的实现八叉树的人,没有什么可以阻止您使用用C编写的numpy来实现它。(还要确保使用的是线性内存,如二叉树,而不是指向链接结构中的对象的指针)

Blog post on this subject

这在很大程度上取决于你的计算机图形学课程的内容。如果你想学我以前教过的入门课程,基本上就是旋转立方体和球体,一些纹理贴图和一些顶点动画,就这样。在这种情况下,Python将是完全合适的,假设您可以绕过unpythic(和,让我们诚实,un-c++)OpenGL状态机范例。

对于做矩阵数学之类的事情,你可以使用Numpy,它的核心是用C编写的,而且非常快。你会跑得更快,迭代速度更快,更有可能获得更多乐趣。

<>如果你正在做一些硬核、前沿、每百万个三角形的动画,每一个场景都是动画的计算机图形课程,坚持C++。

如果您的类已经给了您选择,那么可以肯定Python会没事的。

如果你想把你的知识运用到计算机图形学中的实际工作中,几乎所有的游戏和图形引擎都是用C或C++编写的,而Python(或Lua)则被当作脚本语言。

以下是我的个人经历:

当我第一次听说PyOpenGL时,我非常激动。我最喜欢的语言是OpenGL?处理!所以我开始自学三维图形编程。

我看了几本教程和书,比如NeHeOpenGL SuperBible。因为PyOpenGL's functions与OpenGL本身相同(差别很小),所以复制大多数示例并不困难。此外,NeHe还有许多其他人用Python编写的源代码。

在我阅读了四元数并用Python实现之后不久(大约两周)。现在,我有一个支持GLSL的环境,其中包含完整的3D相机交互选项。我制作了一个简单的Phong着色器,并使用四元数驱动我的相机旋转。我还没有一个表演成功。

几个月后,我又回到了这个密码。

我尝试了一个Python八叉树实现,当我进入8个级别(256x256x256体素)时,需要超过2G的RAM来计算,几分钟后,仍然没有完成。我意识到当你在Python中存储很多对象时,它不仅仅是C++中的简单结构。这就是我意识到我需要把这个因素分解出来,用C++编写,然后用Python调用将它粘合起来。

一旦我搞定了,如果我记得的话,我会更新你的。;]

(回答你的问题,不,Python永远不会取代C++)。这两种语言有着不同的目的和优势。)

相关问题 更多 >

    热门问题