c++ - OpenGL 在我的电脑上性能低下

标签 c++ performance opengl ubuntu

我们在学校开始学习 OpenGL,特别是实现了一个 .obj网格加载器。当我在学校使用非常重的网格(4M 到 17M 面)运行我的代码时,我必须等待几秒钟才能加载网格,但一旦加载完成,我就可以完美流畅地旋转和移动场景。

我在家里编译了相同的代码,在显示大量网格的场景中移动时性能非常低。

我正在使用 3.0 Mesa 10.1.3 OpenGL 版本(这是 cout << glGetString(GL_version) << endl 的输出)并使用 g++-4.9 编译.我不记得我学校的版本号,但如果需要,我会尽快更新我的消息。最后,我在 Ubuntu 14.04 我的显卡是 Nvidia Geforce 605,我的 CPU 是 Intel(R) Core(TM) i5-2320 CPU @ 3.00GHz,我有 8Go RAM

如果您有任何想法可以帮助我理解(并修复它)为什么它在一台非常好的计算机(当然不是赛马但足够好)上运行如此缓慢,请告诉我。提前致谢!

最佳答案

TL;DR:您使用了错误的驱动程序。安装来自 NVidia 的专有、闭源二进制驱动程序,您将获得非常好的性能。此外,对于 GeForce 605,您应该获得一些 OpenGL-4.x 支持。


I'm using the 3.0 Mesa 10.1.3 version of OpenGL (…) my graphic card is a Nvidia Geforce 605

这就是你的问题。作为 Mesa 一部分的用于 NVidia GPU 的开源“Noveau”驱动程序距离提供任何类型的合理硬件加速支持还有非常很长的路要走。这是因为 NVidia 不会公开发布有关其 GPU 低级编程的文档。

因此,目前在您的 GPU 上获得硬件加速 OpenGL 的唯一选择是安装 NVidia 的专有驱动程序。它们可以在 NVidia 的网站上找到;但是,由于您的 GPU 现在不是“前沿”,我建议您使用可通过包管理器安装的那些;不过,您必须添加一个“非自由”包源存储库。

这与 AMD GPU 形成鲜明对比,AMD GPU 具有完整的文档覆盖范围,可公开访问。因此,Mesa“radeon”驱动程序非常成熟;完整的OpenGL-3.3核心支持,对大多数应用程序来说性能足够好,在某些应用程序中甚至优于AMD的专有驱动程序。 Mesa 的 OpenGL-4 支持总体上正在进行中,上次我检查“radeon”驱动程序的开发实际上比 Mesa OpenGL 状态跟踪器本身更快。

关于c++ - OpenGL 在我的电脑上性能低下,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26170401/

相关文章:

c# - 为什么函数调用要花这么多时间?

c++ - 延迟渲染的特殊情况

c++ - 在 OpenSceneGraph 中创建一个球体(使用 osg::Geometry)

c++ - 使用未声明的标识符 'gl_LightSource'

c++ - 非本地 IP 的套接字监听器不起作用

c++ - 根据类模板参数,定义或不定义类中的函数

c++ - 虚拟模板函数解决方法

c++ - 在 QT 中循环而不会崩溃

Android studio 在布局设计过程中卡住

c# - 多维数组与一维数组