2010-05-24 16 views
1

我一直在研究OpenGL的项目。在这里,我只是展示一艘船随着一些选择的视图更改..它的2D程序。事情是我已经使用了许多glTranslate函数来移动代码中的船。它在Windows(DEV-CPP)中正常工作,但在Fedora中执行时,它对于船只有非常非常非常慢的移动。检查CPU LOAD时,它是巨大的。那么,我可以尝试将船快一些吗?建议替代glTranslate()加载CPU

请帮助:)

+1

你会惊讶任何3D应用程序有多少glTranslates有...反正..你可以手动移动点,因为它是一个2D应用..不断递增,递减他们,并呼吁重新显示..确保u使用双缓冲 – Laz 2010-05-24 17:45:40

回答

3

这是最有可能的是你没有在你的Fedora版本的硬件加速。检查您是否安装了来自nvidia(或制造视频卡的制造商)的专有驱动程序。

此外,其他OpenGL程序运行速度快吗?

+0

是的其他OpenGl功能运行。就像这个Cube的旋转一样,它的旋转速度很快。在这段代码中我使用了太多的glTranslate函数。所以我猜内存利用率也太多了.. 我不明白你的建议的第二部分。你要我做什么?我有一个英特尔G卡 – 2010-05-24 03:18:37

+0

我开始检查与glTranslate其他程序...它很慢..。这意味着Linux硬件加速。 – 2010-06-07 22:19:12

1

这可能是事实,英特尔有一个可怕的Linux驱动程序。

当你说你有太多的glTranslate的,有多少是太多?每帧几千?如果您有大量翻译调用被称为背靠背,您可以随时手动添加它们,然后用总和调用glTranslate一次。如果这会降低你的机器速度,我会很怀疑。

+0

没有理由每帧每个对象多次调用'glTranslate'。理想情况下,您完全避免调用(并传递您自己的变换矩阵),因为它在3.x上下文中不推荐使用。 – 2010-05-24 16:14:53

+0

它不能发生..它在for循环,还有很多其他的东西来麻烦..反正thankx您的答复。 :) – 2010-05-24 21:39:36