在opengl中使用特殊的键使我的电脑非常慢

Use of special keys in opengl makes my computer really slow

本文关键字:我的 电脑 非常 opengl      更新时间:2023-10-16

我写了一个opengl代码,在对象上绘制一些对象,灯光和纹理。特殊键,如箭头旋转纹理映射对象。但是如果我继续旋转它们10秒,我甚至无法关闭opengl窗口。我不发布我的代码,它有点长,我不知道它的哪一部分减慢了速度。

根据你在评论部分的回答,我想我知道是怎么回事了。

glutSpecialFunc调用箭头处理函数。在箭头处理程序:if(GLUT_KEY_UP){//旋转glutPostRedisplay()} if(GLUT_KEY_DOWN ....)……所以在

这不是在您的过剩程序中处理键盘事件的正确方法。实际上,呈现循环中完成的工作量会根据用户的按键次数而变化。

你应该有一个独立于键盘活动的主绘制循环来继续重新绘制场景,而不是将重新显示作为对击键的响应。您还需要为位置(x, y, z)和旋转角度设置状态变量。绘制例程简单地使用这些状态变量中的x、y、z和旋转信息绘制场景。

然后,对于键盘处理,您只需根据程序中支持的击键方式相应地更改这些状态变量。当主绘图循环与键盘处理程序自由异步运行时,它将自动响应这些更改。