2013-05-01 68 views
1

我有一個頂點緩衝區和一個索引緩衝區來渲染一個多邊形網格。 我想操縱N個頂點的位置(獨立於其他相鄰頂點移動它們)。如何直接更新VBO頂點數據?

我怎麼能去這樣做?

。我當然希望我沒有回去使用(4,8代替glDrawElements)。我花了很多時間才弄清楚頂點/索引緩衝區的渲染。

+0

我能找到一個類似的問題。它有幫助,但我希望得到這個社區的確認。 http://stackoverflow.com/questions/14574660/change-colour-of-vertices-after-they-are-uploaded-using-a-vbo?rq=1 – AlvinfromDiaspar 2013-05-01 06:30:25

回答

0

如果使用glBufferSubData更新數據你可能會稍微好一點的性能,特別是如果你能避免更新所有的緩衝區,但它只是一個很小的一部分。除非你移動你的頂點動畫到頂點着色器,你需要更新頂點每個頂點移動(由用戶)時間緩衝,並glBuffer(子)數據是最好的選擇。

編輯:創建VBO爲DYNAMIC,如果您經常進行更改,請創建兩個緩衝區並使用雙緩衝方法,以避免性能問題,因爲這樣可以在gpu使用其他緩衝區時寫入數據用於渲染。