2012-11-16 34 views
0

我正在渲染一對存儲在名爲CMesh的類的對象中的OpenGL。 CMesh包含許多由CVertex對象和三角形表示的頂點。每個CVertex都包含一個Vector及其位置。
隨着渲染過程中頂點位置不斷變化,每次渲染網格時我都必須重寫VBO數據數組。這極大地減慢了整個程序的速度,儘管與其他大型遊戲相比,我沒有那麼多的頂點。
有沒有更好的方法來做到這一點?填補我的維也納各組織的最佳途徑是什麼?

+0

爲什麼你不斷地改變頂點位置而不是使用翻譯? –

+0

他們是動畫。通過給着色器提供額外的矩陣來完成翻譯,旋轉等。 –

+0

查看http://stackoverflow.com/a/1494740/603688 – Dan

回答

0

假設你正在使用GL_STATIC_DRAW,你可以改變它,而不是使用GL_DYNAMIC_DRAW,它不應該減慢程序的速度。或者,計算GPU上對象的新位置也是值得研究的可能性。

1

使用一個變形目標或至少一個皮膚與幾個骨頭的網格。這比手動更新每個頂點要好得多