2010-05-24 33 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