2014-10-08 64 views
0

我開始使用opengl,我想知道如何在屏幕上放置超過100萬像素而不會低於10 fps。目前我已經建立了一個std :: vector,它在主循環的更新階段獲取每個像素信息,然後在呈現之前進行處理。 渲染階段看起來像這樣: glBufferData(GL_ARRAY_BUFFER, sizeof(float)*data.size(), &data[0], GL_DYNAMIC_DRAW); 然後我glDrawArrays在OpenGL 4中繪製一百萬像素的最快方法?

每個像素需要顏色和2d的位置。是否有更快的方法繪製一百萬像素?我使用動態繪製,因爲我想在屏幕上改變顏色,而每個像素都會給出隨機顏色。有點像破裂的頻道上的電視。

+1

100萬像素大致是1024x1024,那麼紋理四邊形呢? – clambake 2014-10-08 07:48:23

+0

而不是通過矢量發送數據..不能在片段着色器中計算它。那將是最快的方式! – 2014-10-08 07:48:49

+0

這是我的目標,繪製一個四邊形,並計算片段着色器中的紋理信息... – clambake 2014-10-08 07:53:23

回答

3

不要將顏色存儲在數組中,而是在片段着色器中計算它們。

您創建了一個噪點紋理併爲其採樣器使用了包裝。你還應該通過一些制服來改變每一幀,並以非線性的方式將它們與窗口座標結合起來。

+0

我可以有兩個不同的GL_TEXTURE_2D將信息複製到?我如何獲得新的不同緩衝區?我應該做一個新的vbo? – user2893243 2014-10-08 09:19:20

+0

@ user2893243你不會使用VBO,而是獨佔紋理(最多可以有4個頂點來創建全屏四邊形),但是是的,你可以有更多的紋理和制服將噪音基於 – 2014-10-08 09:24:57

+0

只是出於好奇,如果我沒有使用紋理,我怎樣才能解決越來越多的像素間距問題,因爲我調整窗口的大小變得更大 – user2893243 2014-10-08 09:40:40

相關問題