我已经在这一两个晚上磨了一下,任何提示将被认为:
我在旧笔记本电脑上安装了Linux(Debian),并且一直在用它编写一个OpenGL应用程序。 当在屏幕的一小部分上绘制纹理时,帧率大约为80fps。 当我在屏幕上越来越大的部分绘制纹理时,帧速率急剧下降。 全屏纹理将fps降至12。
我知道硬件能够以更快的速度渲染。 即使openGL在软件模式下运行..仍然看起来很慢。
任何指针诊断这将不胜感激,谢谢。 我是OpenGL的新手,所以可能是很明显的。
我试过的东西:
glxinfo已经让我知道笔记本电脑是能够硬件加速的opengl渲染。 虽然我不积极,它不是在软件运行,我相当肯定笔记本电脑安装在硬件opengl运行。
我放弃了深度缓冲区,只需要在笔记本电脑支持的分辨率下请求24位屏幕缓冲区。 (还有一个backbuffer)。
从GL_TEXTURE_MIN_FILTER,GL_LINEAR切换到GL_TEXTURE_MIN_FILTER,GL_NEAREST给我买了一些帧,但是它稍微超过20fps,这仍然太慢了。
我已经从glShadeModel(GL_SMOOTH)切换到glShadeModel(GL_FLAT)。 我没有加速。
我已经尝试渲染纹理作为vertexpointer和glBegin(GL_QUADS)调用。
在此先感谢,〜W
如果从BILINEAR(GL_LINEAR)切换到NEAREST会使帧率更好,那么您肯定是在运行软件渲染器。
请从命令行(这是从我的OSX,但应该在Linux上类似)做到这一点:
# glxinfo | grep OpenGL OpenGL vendor string: NVIDIA Corporation OpenGL renderer string: NVIDIA GeForce 8600M GT OpenGL Engine OpenGL version string: 2.1 NVIDIA-1.6.26 OpenGL shading language version string: 1.20 OpenGL extensions: