2010-04-10 99 views

回答

20

的一些技巧在這裏:Common mistakes in GLSL

此外,避免分支只要有可能。也就是說,ifwhile語句和for語句具有帶有可變的比較,例如:

for (int i=0; i<n; i++) {} 

將是緩慢的。然而,

for (int i=0; i<10; i++) {} 

要快很多,因爲大部分的循環被展開的時候,當它不是所有的着色單元仍然在同一時間執行相同的代碼,所以沒有性能損失。

而不是分支,嘗試使用預處理器的條件編譯。

此外,檢查出NVIDIA和ATI的具體#pragma s到調整的效率。

2

雖然許多傳統的c優化適用於glsl,但確實存在一些針對GLSL的特定優化。 如果你不熟悉着色器編程,不要花費太多精力,你的編譯器可以爲你做出非常有效的工作。 當您更深入地瞭解圖形編程時,您可以收集其他一些高級optm技術。 祝你好運。