gpt4 book ai didi

python - PyOpenGL 非常慢

转载 作者:行者123 更新时间:2023-11-28 21:49:48 26 4
gpt4 key购买 nike

我的问题是我的程序显示一个具有 120-fps 限制的简单立方体只能以 25 fps 运行。我发现所有性能损失都在 OpenGL 部分,但我无法弄清楚具体位置。

我的问题是:

  • OpenGL 在 Python 上运行那么慢是否正常?
  • 我的旧笔记本是问题的一部分吗?

这是我用来显示立方体的代码:

def draw(self):
glBegin(GL_QUADS)#info for OGL: treat following code as surface drawing code
for surface in self.surfaces:
x = 0
for vertex in surface:
x+=1
glColor3fv(self.colors[x])
glVertex3fv(self.verticles[vertex])
glEnd()

glBegin(GL_LINES) #info for OGL: treat following code as line drawing code
for edge in self.edges:
for vertex in edge:
glVertex3fv(self.verticles[vertex]) #pass each verticle in the verticles list to glVertex3fv, which creates edges
glEnd() #info for OGL:no more code incoming

最佳答案

不,OpenGL 运行这么慢是不正常的。这里的缓慢来自于使用即时模式(glBegin(), glEnd())。基本上,您在每一帧中一一调用这些 python 命令,并且卡必须立即产生输出。这在 C 中很慢,更不用说逐行解释的 Python。

您想要的是预先准备顶点缓冲区(通常称为 VBO),然后在渲染时提交它们以进行批量渲染。

看看现代 OpenGL (>=2.0) 方法的 wikibook:https://en.wikibooks.org/wiki/OpenGL_Programming/Modern_OpenGL_Introduction .它在 C/C++ 中,但您可以遵循函数调用和原则。

关于python - PyOpenGL 非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32921445/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com