Python 如何提高以下代码的性能? glBegin(GL_三角形) 对于面中的面: 对于面中的顶点_i: glVertex3f(*顶点[顶点i]) 格伦德()
有没有办法用更有效的函数/方法替换双for循环?是的,您可以使用固定函数属性并定义顶点数据数组/。在这种情况下,您可以通过绘制三角形。Python 如何提高以下代码的性能? glBegin(GL_三角形) 对于面中的面: 对于面中的顶点_i: glVertex3f(*顶点[顶点i]) 格伦德(),python,performance,for-loop,opengl,pyopengl,Python,Performance,For Loop,Opengl,Pyopengl,有没有办法用更有效的函数/方法替换双for循环?是的,您可以使用固定函数属性并定义顶点数据数组/。在这种情况下,您可以通过绘制三角形。 索引必须是三角形索引的数组和顶点数组以及坐标分量的数组。例如: 初始化时: vertexarray=[c代表v,c代表v,c代表v] 指数=[i代表f,i代表f] 每帧: glvertexinter(3,GL\u浮点,0,顶点阵列) glEnableClientState(GL_顶点_数组) GLD元素(GL_三角形、len(索引)、GL_无符号整数、索引)
索引
必须是三角形索引的数组和顶点数组
以及坐标分量的数组。例如:
初始化时:
vertexarray=[c代表v,c代表v,c代表v]
指数=[i代表f,i代表f]
每帧:
glvertexinter(3,GL\u浮点,0,顶点阵列)
glEnableClientState(GL_顶点_数组)
GLD元素(GL_三角形、len(索引)、GL_无符号整数、索引)
glDisableClientState(GL_顶点_数组)
或者,您可以使用
导入numpy
vertexarray=numpy.array(顶点,dtype=numpy.float)
索引=numpy.array(面,数据类型=numpy.uint32)
glvertexinter(3,GL\u浮点,0,顶点阵列)
glEnableClientState(GL_顶点_数组)
GLD元素(GL_三角形、索引.size、GL_无符号整数、索引)
glDisableClientState(GL_顶点_数组)
请阅读并考虑你发现最有用的东西。