什么时候编译着色器好?

时间:2013-02-28 09:37:35

标签: opengl glsl shader fragment-shader vertex-shader

我正试图进入'现代'OpenGL。我想到目前为止我理解shader的概念并且我知道如何编译它们,但我不确定什么时候这样做很好。

是否可以在应用程序启动时编译一个可以编译所有shader的函数,将它们存储在某种类型的管理器中,这将管理当前需要的shader

或者也许我应该在需要时编译它们,下次需要它们时才使用我已创建的那个?

我认为每帧创建一个shader program并不是一个好主意。

我很感激有关如何以良好方式组织它的任何提示。

1 个答案:

答案 0 :(得分:2)

  

是否可以在应用程序启动时编译所有着色器的函数,将它们存储在某种类型的管理器中,这将为当前需要的着色器提供服务?

是。这是可以被视为OpenGL“初始化”的那些一次性初始化事件之一。