它被称为“图书馆”,但我太天真了:它是一堆个人实验代码。
不过,它演示了您可以从Python以60fps的速度移动数百位几何体。
虽然上面的演示是相当简单的,因为它使用简单的几何和无纹理的脸,我发现一件事是,更详细的几何,纹理映射或其他更现代的图形效果没有实质性的影响帧速率。或者至少它们不会比在C程序中使用相同的效果更糟糕。这些都是在GPU上运行的,所以如果您的程序是用Python编写的,这一点都没有区别。
Python对性能敏感的一点是,如果您在CPU端创建动态几何体,例如通过弯曲或融化形状来移动形状内的各个顶点。在Python中进行这种逐顶点计算,然后从结果构造一个新的ctypes数组,然后将这个几何体分流到GPU,每帧都会很慢。相反,您可能应该在顶点着色器中执行此操作。
另一方面,如果你只需要仿射变换(移动物体、旋转物体、打开抽屉、旋转车轮、弯曲有关节的机器人手臂),那么所有这些都可以通过GPU完成,而你的程序是用Python编写的,这对性能没有什么影响。