2013-02-28 77 views
4

我正試圖進入'現代'OpenGL。我想我到目前爲止已經理解了shader的概念,並且我知道如何編譯它們,但我不確定什麼時候可以做到。編譯着色器是否合適?

是否可以在應用程序啓動時編譯所有shader s的函數,將它們存儲在某種類型的管理器中,這將用於當前需要的服務shader

或者我應該只在需要時編譯它們,下一次需要時才使用我已經創建的那個?

而且我認爲每幀創建一個shader program並不是一個好主意。

我很感激任何有關它的提示如何以良好的方式進行組織。

+1

性能對您的應用程序有多重要? – 2013-02-28 09:41:39

+0

不是很多,但我也不希望遇到大的表現下降。 – 2013-02-28 09:43:43

回答

2

可以在應用程序啓動時編譯所有着色器,將它們存儲在某種類型的管理器中,用於當前需要的着色器嗎?

是的。這是可以被視爲OpenGL「初始化」的那些一次性初始化事件之一。