2012-02-19 89 views
2

我寫了一個程序來模擬使用彈簧的軟體。它看起來不錯,但問題是它消耗了大量的CPU時間。所以我不能在我的筆記本電腦或任何高端PC上運行它。GLSL如何在着色器處理後檢索頂點位置?

我認爲寫一個頂點着色器並將邏輯移動到GPU是一個好主意。我已經閱讀了一些教程,並做了一個香椿着色器,所以我認爲(錯誤)我準備好了。

我遇到的最大問題是我需要知道頂點的舊位置來計算新頂點。我不知道如何檢索頂點位置,以便我可以將它發送回每個幀的着色器?

我真的不確定這是否可以做,也許我正在嘗試着色器從來沒有做的事情。我仍在研究,但我想我可以問一個看看有人可以幫忙。

回答

1

如果您的硬件支持OpenGL 3.0或更高版本,則可以使用變換反饋機制。還有其他一些獲取頂點位置的技巧,例如仔細安排渲染,以便爲屏幕上的每個單獨像素編寫一個三角形(或點基元)。這相當困難,您需要渲染到需要FBO支持的浮點緩衝區。

+0

非常感謝!我遇到了變換反饋,但我很少與我讀過的所有其他東西一起丟失,所以我完全忘了它。這正是我在尋找的東西,我想象它會很酷,如果它存在的話!再次感謝! :d – Nikola 2012-02-19 16:46:56