2015-07-13 293 views
1

我正在編寫一個包含大型數據集線圖的應用程序。OpenGL繪製每n個頂點

我目前的策略是將每個通道的數據加載到一維頂點緩衝區中。

我再畫組裝我的緩衝區到頂點(這樣我就可以重新使用我的多組數據的緩衝區之一)

這是相當不錯的了,而且我能畫幾百時使用頂點着色器百萬個數據點,而不會放慢太多。

爲了進一步拉伸事物,我想減少實際繪製的點數,儘管簡單的縮小(即繪製每n個點),因爲沒有太多的點繪製1000點,這些點全部由單個像素)

我能想到的一種方法是使用幾何着色器,並且只發出每N個點,但我不確定這是否是最佳攻擊計劃。

這是推薦的方式嗎?

回答

3

通過將所有頂點屬性的步幅調整爲正常值的N倍,可以更簡單地完成此操作。

+0

我可以通過在綁定到vbo進行繪製之後再次調用glVertexAttribPointer來完成此操作。我已經嘗試過增加1000倍,但沒有看到FPS明顯增加。 – Hugoagogo

+0

@Hugoagogo那麼你的瓶頸是不是你畫的點數(1億對現代硬件來說並不是那麼多) –

+0

我知道這是一個全新的問題,但是在哪裏可以探索和開始。我還認爲2gb的頂點數據越來越大。 – Hugoagogo