2011-01-24 78 views
0

我需要在OpenGL中渲染影響圖。目前,我有100 x 100四邊形以設定的顏色進行渲染,以表示地圖上每個點的影響。我已經建議將我的渲染方法更改爲具有紋理的一個四邊形,然後讓渲染管線以接管速度進行。快速紋理在OpenGL中設置

基本測試表明,glTexSubImage2D對於每幀設置10,000個紋理元素太慢。你有什麼建議嗎?每幀創建一個全新的紋理會更好嗎?我的影響力圖在標準化的浮點數(0.0到1.0)中,並被轉換爲灰度色(1.0f =白色)。

感謝:d

+0

您是否在調用`glTexSubImage2D()`10000次來更新10000個像素,或者一次更新10000個像素? – genpfault 2011-01-24 14:50:08

+0

爲什麼這個標籤爲人工智能? – ziggystar 2011-01-25 13:19:07

回答

2

你正在更新的每個單獨的10000個紋理元素,與glTexSubImage2D 10000個電話?

只需在RAM中使用一個100x100灰度浮點紋理(10000浮點數組),直接更新值,然後通過一次glTexImage2D調用將整個數據發送到GPU。您也可以使用緩衝區對象來允許在後臺進行傳輸,但由於您沒有移動大量數據,因此應該沒有必要。